一.虚函数
1.形式:virtual 返回类型 函数名(参数列表);
2.有定义
3.含有虚函数的类可以像普通类一样使用:可以创建对象,虚函数可以被调用
二.纯虚函数
1.形式:virtual 返回类型 函数名(参数列表)=0;
2.没有定义
三.抽象(基)类
1.在C++中,含有纯虚拟函数的类;在java中,含有抽象方法的类
2.在C++和java中,都不能生成对象
四.对比
C++ java
虚函数-----普通函数
纯虚函数---抽象函数
抽象类-----抽象类
虚基类-----接口
五.参考
1.http://blog.csdn.net/feihaixin/article/details/43834547
2.http://blog.sina.com.cn/s/blog_65d1293a0101ncep.html
3.http://blog.csdn.net/wuqiuping695/article/details/49069779
六.与继承的关系
1.多态要通过指针或引用实现,而不能通过对象
2.若指针或引用的类型是子类类型,通过这样的指针或引用释放内存,子类和父类对象都被释放;
3.若指针或引用的类型是父类型(这样可以实现多态):
父类的析构函数要为虚函数,通过这样的指针或引用释放内存时,才能把父类和子类对象都释放。
如果父类的析构函数不为虚函数,通过这样的指针或引用只能释放父类对象。
C++:多态
最新推荐文章于 2022-03-28 08:57:31 发布