76.Java中的虚方法调用
程序员文章站
2022-04-29 09:34:08
...
我们前面已经知道了,在多态的情况下,声明为父类类型的引用变量只能访问父类中定义过的方法,但如果此变量实际引用的是子类的对象,而子类中又进行了方法覆盖时,实际调用的是子类中覆盖后的方法,这种机制称为虚方法调用。
在使用多态的情况下,有可能出现编译时类型和运行时的类型不一致的问题,如上面的例子中:
public class CalClass{
.. …
public int calPersonBirthYear(Person p) {
// 根据参数p的年龄来计算出生年代
}
}
在编译的时候,方法calPersonBirthYear 的参数类型是Person的,而在运行的时候,可能就是Student 或Teacher或Person或其他的Person子类类型了。
上一篇: 命名空间、对象枚举
下一篇: 昆阳之战中,汉光武帝刘秀有多勇猛?