为什么以下Java代码会产生:
10
superclass
Run Code Online (Sandbox Code Playgroud)
有问题的代码是:
class SuperClass {
int a;
public SuperClass() {
this.a = 10;
}
private void another_print() {
System.out.println("superclass");
}
public void print() {
System.out.println(this.a);
this.another_print();
}
}
class SubClass extends SuperClass {
int a;
public SubClass() {
this.a = 20;
}
private void another_print() {
System.out.println("subclass");
}
public void print() {
super.print();
}
}
public class Main {
public static void main (String[] args) {
SubClass c = new SubClass();
c.print();
}
}
Run Code Online (Sandbox Code Playgroud)
没有SuperClass创造过的实例,不存在吗?不仅Java开始寻找从中调用的方法SuperClass …