当前位置: 代码迷 >> Java相关 >> Java super关键字调用父类的步骤疑惑
  详细解决方案

Java super关键字调用父类的步骤疑惑

热度:12   发布时间:2016-04-22 20:34:16.0
Java super关键字调用父类的方法疑惑

写了一个例子,运行结果不是很理解,如下:

 1 public class PhoneBill extends Bill { 2     @Override 3     public void foo1(){ 4         System.out.println("PhoneBill:foo1"); 5     } 6     @Override 7     public void foo2(){ 8         System.out.println("PhoneBill:foo2"); 9         super.foo2();10     }11 }
1 public class Bill {2     public void foo1(){3         System.out.println("Bill:foo1");4     }5     public void foo2(){6         this.foo1();7         System.out.println("Bill:foo2");8     }9 }
1 public class test {2 3     public static void main(String[] args) {4         // TODO Auto-generated method stub5         PhoneBill phone = new PhoneBill();6         phone.foo2();7     }8 }

运行结果如下:

 

PhoneBill:foo2PhoneBill:foo1Bill:foo2

 

 子类里通过super调用父类的foo2方法,该方法里又调用foo1,为什么调用的是子类的foo1方法呢?是因为foo1方法被子类覆盖了的原因吗?哎,搞不清这里的方法是怎么调用的

  相关解决方案