abstract、virtual与override
来源:互联网 发布:手机淘宝怎么比价 编辑:程序博客网 时间:2024/05/17 03:30
前言
软考学习过程中涉及到了设计模式,这个时候一些面向对象的概念要被复习到。提到面向对象,我就可以想到四个词:封装、继承、多态、抽象,而他们与abstract、virtual与override有什么关系呢?
基础
1.普通类,就是我们平常使用的class 类名,前面没有加修饰符就是普通类,他可以被实例化,如果我想要使用继承的话,就定义一个子类继承这个普通类,如果我想要重写的话,就在父类中写一个virtual方法,在子类用override重写这个方法即可。父类的方法可以不被重写。
2.抽象类,他就是在普通类前加一个abstract,格式:abstract class 类名,由此成为抽象类,他不可被实例化,里面的方法也是抽象的,也同样在方法名前加一个abstract,这个方法必须被重写。
什么用类,什么时候用抽象类呢?
当我们发现我们需要把这个类实例化的话,我就用普通类,当我们发现这个类我们根本就不需要被实例化,就抽象成抽象类。例如,人是一个大类,学生、教师、校长都继承这个人类,但是我们一般实例化都直接学生 对象名,而不会说人 对象名,所以这个时候这个人类根本就不需要被实例化,这个时候就把它抽象成一个抽象人类。
3.接口:实现这个接口。
扩展
为什么有的时候用父类,有的时候用接口,接口哪里比父类好?
1.继承的缺点,继承是子类完全继承父类的东西,但是有时候子类其实是不需要所有的东西的,造成类庞大冗余,而且完全继承也会带来一些危险的因素。
2.接口的优点:接口的话我们只需要定义一个接口,有需要就调这个接口即可!企鹅和大雁继承鸟,但是大雁会飞,企鹅不会飞,鸟不能有这个属性,大雁里写飞的方法,但是如果再出来鸽子,也要再写,这时候,写一个飞的接口,实现接口就好了。极大程度符合开放封闭要和依赖倒转原则!
- abstract、virtual与override
- C# override、new、abstract 与virtual详解
- sealed、new、virtual、abstract与override 总结
- sealed、new、virtual、abstract与override 总结
- sealed,new,virtual,abstract与override
- abstract、virtual、override、new
- abstract&virtual&override
- abstract virtual override 虚基类
- Sealed,new,virtual,abstract与override的区别
- abstract、virtual、override、new說明
- c#中的virtual/override/abstract
- abstract、virtual、override、new说明
- abstract、virtual、override、new说明
- virtual、override、static、abstract、sealed
- abstract、virtual、override、new说明
- new virtual abstract sealed override
- abstract、virtual、override 和 new
- abstract、virtual、override 和 new
- web项目优化
- js-es6-Map数据结构
- 假期只是玩就没意思了!告诉你一个学习麻省理工大学所有课程的好地方
- 数据科学家线性规划入门指南
- win7基础 整个屏幕图像的截取 PrntScr键
- abstract、virtual与override
- Android过度绘制自动化
- 关于jQuery的一些小方法
- javascript中match方法和exec()方法详解与深度区别(非原创)
- win7基础 cmd 桌面空白处,按住shift后,通过右键菜单启动cmd窗口
- HDU 6047 Maximum Sequence(线段树)
- 国庆中秋活动——读完这两套书,宝宝就变小小物理学家了!
- 是学习Java还是Python?一张图告诉你!
- 2017/10/04(上午)学习日记