【Unity】Abstract、 Virtual、Override的使用

Abstract(抽象方法):

Abstract可以修饰 类,方法,属性索引

Abstract修饰的内容代表方法的内容未完全实现,但是继承该抽象类的对象必须要去实现抽象类的两个抽象方法,可以重写,也可以不重写

例子:

写了一个抽象类SceneState,其中包含两个抽象方法,一个OnEnter,一个OnExit

写了一个StartScene类,继承SceneState,直接报错,说没有实现抽象类的成员,如下图:

 

重写并实现了两个方法之后,报错消失。

 

 

Virtual(虚方法):

virtual关键字用于修饰方法、属性、索引器或事件声明

如果该抽象类的方法中使用了virtual关键字,那么继承这个抽象类的子类可以重写virtual关键字的方法,也可以不重写该方法。

例子2:

写了一个抽象类BasePanel,其中包含4个虚方法OnEnter,OnPause,OnResume,OnExit

又写了一个StartPanel类,继承BasePanel抽象类,其中只有OnEnter方法重写了,其他的都没有动,代表默认继续使用BasePanel中的虚方法。

 

该StartPanel继承了BasePanel,但只重写了一个OnEnter方法,其他方法可以使用抽象类的方法,也可以重写 

总结一下:

一:Virtual只能用来对方法进行声明,Abstract可以对类以及方法声明

二:被Virtual声明的基类方法,子类继承时,可以重写也可以不用重写,而被Override声明的基类方法,在子类中必须重写(因为没有方法体)


版权声明:本文为CSDN_6954原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。