1:构造函数或者析构函数中有虚函数的场景
C++中,此时不产生动态联编,即此时调用的肯定是积累的虚函数
而JAVA中依然产生动态联编,此时调用的是对应子类的虚函数。
2:C++中覆盖的场景要求父类和子类的函数声明完全相同,而JAVA中子类的对应函数返回值可以是子类的类型
3:上述第1条,若涉及到变量读值,若变量没有赋值的话,则使用初始值(一个类中的成员变量构造顺序为:static块(static成员变量和static{}括起来的函数段、非static块(普通成员的直接初始化和{}括起来的段、构造器)))。
Java和C++多态的区别
最新推荐文章于 2024-08-15 21:08:38 发布