寫了一個例子,運行結(jié)果不是很理解,如下:
1 public class PhoneBill extends Bill { 2 @Override 3 public void foo1(){ 4 System.out.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 }運行結(jié)果如下:
PhoneBill:foo2PhoneBill:foo1Bill:foo2
子類里通過super調(diào)用父類的foo2方法,該方法里又調(diào)用foo1,為什么調(diào)用的是子類的foo1方法呢?是因為foo1方法被子類覆蓋了的原因嗎?哎,搞不清這里的方法是怎么調(diào)用的
新聞熱點
疑難解答