日期:2014-05-18  浏览次数:20846 次

有关类与对象的问题求解
Class A{
    public static void part(){
    System.out.println("1");
}

public A() { 
    System.out.println("A");
}

public class B extends A {
    public static void part(){
    System.out.println("2");
}
public B() { 
    System.out.println("B");
}
public static void main(String[] args) {
A a = new B();
a = new A();
}
输出为:A,B,A 求解答:为什么会输出三个结果?

------解决方案--------------------
子类继承父类,当new子类时必先执行父类的构造函数再执行子类的
A a = new B();//A,B
a = new A();//A
------解决方案--------------------
A a = new B();  这次new了B,但B是extend A,此时初始化,会先去调查A的构造(先得有父亲才会有儿子)
接着调用B的构造,就构造完成。
a = new A(); 这就相当于重新NEW ,只不过只时直接指向A,所以再调用A的构造 
http://www.kxikx.com/index.jsp