1 virtual
修饰的属性或函数
virtual
可以修饰属性或函数,但是不能修饰字段。
- 虚函数前要有
virtual
修饰符,且必须要有实现
- 派生类可以重写基类的虚函数,派生类重写的函数前必须要有
override
关键字。如果基类的虚函数满足要求,派生类也可以无需重写该虚函数。
2 abstract
修饰的抽象类
- 抽象类不可以进行实例化,只有其派生类可以进行实例化。
- 抽象类一般要包含抽象成员,即抽象函数或抽象属性,抽象成员,即前面要有
abstract
修饰符
- 抽象类也可以不包含抽象成员,此时抽象类只是不能实例化,只能由其派生类进行实例化。
abstract
修饰的函数在声明的基类中不能进行实现,其作用主要是强制派生类提供对应的实现。
- 在派生类中对抽象的成员进行实现时,前面必须要有
override
关键字来进行修饰。(由于抽象成员必须要在派生类中进行重写,因此抽象类中的抽象成员会自动成为虚成员,但是不能用 virtual
关键字来进行显示的声明)
3 interface
接口
- 接口不能进行实例化,只能实例化其派生类
- 接口中所有的成员(即函数和属性)都默认是公有的,不能再声明任何访问修饰符。
- 接口中的所有函数都只有声明,而不能有实现,要在继承的类中来对接口中声明的函数进行实现
- 接口中不能有静态成员
4 不同类型的比较
- 抽象类中只要包含有抽象成员即可,其它非抽象成员函数可以有自己的实现;而接口中的所有成员都不能有实现,必须要在其继承类中来进行实现;虚函数必须要有自己的实现,派生类可以提供自己的实现,也可以直接使用基类的虚函数。
posted @
2022-10-23 00:10
Jeffxue
阅读(
144)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!