作者johnny94 (32767)
看板java
标题[问题] override private method
时间Thu Jan 12 02:37:57 2012
最近遇到一个override的问题想不出来
原本的程式这样的
public class Test {
public static void main(String[] args)
{
Base base = new Derived();
base.callFoo();
Derived derived = new Derived();
derived.callFoo();
}
}
class Base {
public void callFoo()
{
foo();
}
public void foo()
{
System.out.println("Base foo()");
}
}
class Derived extends Base {
public void foo()
{
System.out.println("Derived foo()");
}
}
输出是:Derived foo()
Derived foo()
这边都跟我观念上的认知一样
但是如果把两个 class 的 foo() 改成 private 的话
输出就变成:Base foo()
Base foo()
为什麽会变成这样,不是结果应该会跟原本一样吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.191.85
2F:→ ssc24:private method 只有同一class能看得到 看不到的就不能覆写 01/12 17:20
3F:→ chihcai:都private怎麽override 在做override还是多用@Override 02/28 00:28