class Test2 extends Test{
public void f1(){
System.out.println("public f1()");
}
}
public class Test {
private void f1(){
System.out.println("private f1()");
}
public static void main(String args[]){
Test t=new Test2();
t.f1();
}
}
该代码结果为:private f1()
主类的私有方法子类是看不见的,所以子类无法调用父类的私有方法。这里相当于子类重新写了一个f1()方法。问题在于,t是指向Test2类的对象,应该调用子类对象的方法啊,为什么结果还是调用父类方法?