【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声明的基类方法,在子类中必须重写(因为没有方法体)

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜梦说开发(VR)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值