虚类
定义含有虚函数的类是虚类,虚函数用关键字virtual声明。
纯虚类所有函数都是纯虚函数的类是纯虚类。纯虚类可以有成员变量。纯虚类不能实例化。
虚函数虚函数必须是基类的非静态成员函数,其访问权限可以是protected或public,在基类的类定义中定义虚函数的一般形式:
virtual 函数返回值类型 虚函数名(形参表)
{ 函数体 }
虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数。
纯虚函数没有函数体。
Java的接口和C++的虚类的相同和不同处c++虚类相当与java里面的抽象类,与接口的不同之处如下:
1、一个子类只能继承一个抽象类(虚类),但能实现多个接口;
2、一个抽象类可以有构造方法,接口没有构造方法;
3、一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实现(有方法体),接口中的方法都是抽象方法,不能有方法体,只有声明;
4、一个抽象类可以是public、private、protected、default, 接口只有public;
5、一个抽象类中的方法可以是public、private、protected、default, 接口中的方法只能是public和default。
相同之处:都不能实例化。