加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 从超类方法调用子类方法?

发布时间:2020-12-15 08:42:51 所属栏目:Java 来源:网络整理
导读:我的应用程序的结构与此类似: class Father{a(){ ... }b(){a();}}class Son extends Father{a(){ ..... }} //override b()没有被覆盖. 当我创建Son的一个实例并且我调用b()时,父的a()被调用,但我希望它执行Son的一个(如果对象是Son).可能吗? 解决方法 儿子
我的应用程序的结构与此类似:

class Father{
a(){ ... }

b(){a();}
}

class Son extends Father{
a(){ ..... }} //override

b()没有被覆盖.
当我创建Son的一个实例并且我调用b()时,父的a()被调用,但我希望它执行Son的一个(如果对象是Son).可能吗?

解决方法

儿子的方法应该被称为.如果不是,那么您要么不在Son的实例上操作,要么没有正确覆盖该方法.如果签名不完全相同,则可能发生这种情况.我会仔细检查你的实现,签名是完全一样的.另外,尝试在@的Son实现上面抛出@Override,看看是否出现编译错误.如果您这样做,那么您没有正确地覆盖该方法.

像这样

class Son extends Father{
  @Override
  a(){ ...}
}

此外,a必须是受保护的或公共的(包私有,默认情况下,仅当父和子在同一个包中时才有效).即儿子必须能够“看到”a()方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读