zoukankan      html  css  js  c++  java
  • 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方法被子类覆盖了的原因吗?哎,搞不清这里的方法是怎么调用的

  • 相关阅读:
    this指针是什么?
    C++多态实现原理
    面试题2:实现Singleton模式
    面试题1:赋值运算符函数
    1.Two Sum
    朴素贝叶斯
    K近邻法
    感知机
    数据类型、用户交互、赋值运算
    蓝牙技术概述
  • 原文地址:https://www.cnblogs.com/aitixiaocai/p/4368141.html
Copyright © 2011-2022 走看看