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 stub

5         PhoneBill phone = new PhoneBill();

6         phone.foo2();

7     }

8 }

运行结果如下:

 

PhoneBill:foo2

PhoneBill:foo1

Bill:foo2

 

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

你可能感兴趣的:(super)