虚拟方法调用

来源:互联网 发布:护眼台灯 知乎 编辑:程序博客网 时间:2024/06/08 16:29

代码:
`package com.v512.mian4;
class V1{
void setz(){
System.out.println(“zz”);
}
}

public class Test3 extends V1{
@Override
void setz() {
// TODO Auto-generated method stub
System.out.println(“xx”);
}
public static void main(String[] args) {
V1 test3 = new Test3();
test3.setz();
}
}
`
正常的方法调用:
V1 e = new V1();
e.setz();
Test3 e = new Test3();
e.setz();

虚拟方法调用(多态情况下):
V1 e = new Test3();
e.setz(); //调用Test3类的getInfo()方法

编译时e为V1类型,而方法的调用是在运行时确定的,所以调用的是Test3类的setz()方法。——动态绑定

0 0