父类也不需要被实例化

时间:2021-11-25 04:02:04

观点:让一个东西能够表示出多种的状态(类型)

实现多态的3种手段:1.虚要领 2.抽象类 3.接口

1.虚要领

法式:1.将父类的要领符号为虚要领,使用关键字 virtual,这个函数可以被子类从头写一遍

2.override 子类从头的要领符号关键字

2.抽象类

当父类中的要领不知道如何去实现的时候,可以考虑将父类写成抽象类,将要领写成抽象要领

abstract 关键字 

抽象要领是没有要领体的!

子类用override重写要领

抽象类是不允许创建东西的

抽象类特点:
* 1.抽象成员必需符号为abstract,并且不能有任何实现.
* 2.抽象成员必需在抽象类中.
* 3.抽象类不能被实例化.
* 4.子类担任抽象类后,必需把父类中的所有抽象成员都重写.(除非子类也是一个抽象类,则可以不重写)
* 5.抽象成员的访谒修饰符不能是private
* 6.在抽象类中可以包罗实例成员.并且抽象类的实例成员可以不被子类实现
* 7.抽象类是有结构函数的,虽然不能被实例化
* 8.如果父类的抽象要领中有参数,那么,担任这个抽象父类的子类在重写父类的要领的时候必需传入对应的参数.
* 如果抽象父类的抽象要领中有返回值,那么子类在重写这个抽象要领的时候,也必需要传入返回值.

******虚要领和抽象类的区别

*如果父类中的要领有默认的实现,并且父类需要被实例化,这时可以考虑将父类界说成一个普通类,用虚要领来实现多态.
*如果父类中的要领没有默认实现,父类也不需要被实例化,则可以将该类定为为抽象类.