我想知道为什么System.out.println(b.count);输出来为什么是10 是因为编译类型是Base父类所有查到属性是count = 10;吗
b.display();=20是因为运行类型Sub所以使用了子类Sub的成员方法吗 所以编译类型是引用属性 运行类型是调用方法吗
测试类
Base s = new Sub();
System.out.println(s.count);
s.display();
Base b = s;
System.out.println(b == s);
System.out.println(b.count);
b.display();
父类和子类
public class Base {
int count = 10;
public void display(){
System.out.println(this.count);
}
}
class Sub extends Base{
int count = 20;
public void display() {
System.out.println(this.count);
}
}