当前位置: 代码迷 >> J2SE >> 关于子类继承父类函数调用有关问题
  详细解决方案

关于子类继承父类函数调用有关问题

热度:17   发布时间:2016-04-23 20:38:17.0
关于子类继承父类函数调用问题

class First{
First(){
method();
}
public void method(){
System.out.println("first");
}
}

 class Second extends First{
 Second(){
 method();
 }
 public void method(){
 System.out.println("second");
 }
public static void main(String[]args){
new Second();
}
}

为什么两次输出的都是second??
------解决方案--------------------
方法从18行 new Second(); 开始,首先加载类的无参构造方法,但Second 类有父类存在,故先加载父类的构造方法,也就是First的构造方法,父类构造方法中调用的是method方法,由于子类Second类重写了method方法,所以First类调用的method方法将调用Second类的method方法。此时,父类的构造方法调用加载完毕。然后加载自己的也就是Second类的构造方法,Second类也调用method方法,调用的自己就是自己的method方法了。所以调用两次Second类的method方法。
  相关解决方案