一道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( ); }
}
这到题不明白是怎么继承的 谁给解答下 谢谢!
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里面的方法在运行时,调用的是子类的方法,这就是多态的标准体现。