有关类与对象的问题求解
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