因为java默认函数是虚函数,都可以被继承和重写。不想被重写需要加上final关键字。
参考:
C++ 中普通成员函数加上 virtual 关键字就成为虚函数。
Java 中其实没有虚函数的概念,它的普通函数就相当于 C++ 的虚函数,动态绑定是 Java 的默认行为。如果 Java 中不希望某个函数具有虚函数特性,可以加上 final 关键字变成非虚函数。
参考:https://www.runoob.com/note/40084
参考2:https://www.jianshu.com/p/baaff02a8b5f
参考3:https://wenku.baidu.com/view/1ab839bc4a649b6648d7c1c708a1284ac85005fb.html
所以C++默认函数是不能被重写的?只要加上virtual的函数才可以被子类重写?