当Base类中的display方法声明为private的时候测试类输出aaaa
当Base类中的display方法声明为public的时候测试类输出aaaabbb
那么原因是什么呢?public class Base {
public Base(){
dispaly();
}
private void dispaly(){
System.out.println("aaaa");
}
}
public class Derived extends Base{
public void dispaly(){
System.out.println("aaaa" + "bbb");
}
}
public class Test { public static void main(String[] args) {
new Derived();
}}
当Base类中的display方法声明为public的时候测试类输出aaaabbb
那么原因是什么呢?public class Base {
public Base(){
dispaly();
}
private void dispaly(){
System.out.println("aaaa");
}
}
public class Derived extends Base{
public void dispaly(){
System.out.println("aaaa" + "bbb");
}
}
public class Test { public static void main(String[] args) {
new Derived();
}}
new Derived();这句会调用Derived();的构造函数,而Derive()又有父类Base();所以会先调用Base();的构造函数,输出"aaaa"!所以不管你定义的是Private还是Public,"aaaa"都会输出,因为你是在父类中调用的父类的函数!