public class PrivateOverride
{
private void f()
{
System.out.println("private f()");
}
public static void main(String args[])
{
PrivateOverride po = new Derived();
po.f();
}
}
class Derived extends PrivateOverride
{
public void f()
{
System.out.println("public f()");
}
}
在上面的例子 中 我们通过向上转型 我们期待输出的是public f()
但是结果却是 private f()
原因是因为private方法被认为是finnal方法 那么也就是说对于其他类是屏蔽的了
所以说 在子类就不能对他进行覆盖了 也就是说 子类中的f()方法 是一个新的方法 只是名字相同罢了
所以以后再写的时候 对于基类中的private 子类最好采用不同的名字