java子类调用父类的方法中包含子类重写的实例方法

# 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了

# 先看代码:

public class Common {

  public static void main(String[] args) {
    Sub sub = new Sub();
    sub.testSub();
  }
}

class Parent {

  protected boolean test() {
    throw new RuntimeException();
  }

  protected void testParent() {
    if (test()) {
      System.out.println(this.getClass().getName());
    }
  }

}

class Sub extends Parent {

  public void testSub() {
    super.testParent();
  }

  @Override
  public boolean test() {
    return true;
  }
}

# 上面的代码的输出结果是:

com.qq.demo.common.Sub

# 大致流程是 main 中调用子类的 testSub()方法 -- testSub()方法中调用父类的testParent() 方法 -- testParent() 方法调用test()方法;需要注意的是test()方法在父类和子类中都存在,子类重写了父类的test()方法;

以上就是本次介绍的全部知识点内容,感谢大家的阅读和对呐喊教程的支持。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。