一道JAVA的继承题不明白

来源:百度知道 编辑:UC知道 时间:2024/07/03 22:18:36
class A{

public A(){

System.out.println("A");

aMethod(); }

public void aMethod(){

System.out.println("in class A");}

}

class B extends A{

public B(){

System.out.print("B");

}

public void aMethod(){

System.out.println("in class B");

}

public static void main(String[ ] args){

new B( ); }

}
这到题不明白是怎么继承的 谁给解答下 谢谢!

运行结果是
A
in class B
B
原因是:子类在调用自己的构造方法时会自动先调用父类的构造方法,因而先打出A
而子类覆盖了父类的aMethod()方法,这方法是根据运行时的对象类型决定的,你创建的对像是B类的.所以他会调用B类中的这个方法,打出in class B
最后再打出B

A里面的方法在运行时,调用的是子类的方法,这就是多态的标准体现。