java对象的方法默认是虚方法,因此java鼓励了程序员使用大量的虚方法来完成程序逻辑。
虚方法是什么:
java没有明确的说明什么是虚方法,虚方法是C++来的,java虚方法可以认为是i
java中所有被override 重写的方法都是虚函数。
那么,java的虚方法就是出现在java的多态特性中,
父类与子类之间的多态性,对父类的函数进行重新定义。如果子类中
定义某方法与其父类拥有相同的名称和参数,那么我们说该方法
被重写。在java中 子类可以继承父类方法,而不需要重新编写相同的
方法。但是有时候子类并不想原封不动地继承父类的方法,而是想做
一定的修改,这就需要重写。
那么对于C++虚方法是什么?
1.可在任何方法上添加virtual,例:virtual void play();
2.继承性:一旦基类中为虚函数,子类将不会为非虚函数
3.优缺性:声明虚方法除了使程序慢一点点以外,没有任何缺点
因为当我们使用基类的引用或指针调用基类中定义的某个函数时,我们并不知道该函数真正的对象是什么类型(属于哪个类),因为它可能是一个基类的对象,也可能是一个子类的对象,所以总结得:对虚函数调用运行时才被解析,对非虚函数调用时编译时就被解析了