“看了一篇文章,里面一些基础问题,大部分都不明确,只停留在听说过的阶段。。。我是程序员么???打扰了打扰了。”
===在导出类中,对于基类中的private方法,最好采用不同的名字。
例题:
public class A{
private void f(){
System.out.println("private f");
}
public static void main(String[] args){
A b=new B();
}
}
public class B extends A{
public void f(){System.out.println("public f");}
}
//输出结果为:private f
===复杂对象调用构造器要遵循下面的顺序:
(1)在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制的零。
(2)调用基类构造器。
(3)按声明顺序调用成员的初始化方法。
(4)调用导出类的构造器的主体。
public class A(){
private B b=new B();
private C c=new C();
private D d=new D();
pubic A(){
}
public static void main(String []args){
A a=new A();
}
}
//先执行B的构造方法之后是CDA

===注意第一次输出的radius=0,根据上面调用构造器的顺序的(1)可以得到。