You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中能否在子类重写父类方法时保留父类输出并追加自定义内容?

解决方案:在子类重写方法中调用父类方法

当然可以实现你想要的效果!你当前的子类代码在重写display()方法时完全覆盖了父类的实现,所以只会输出子类自己的内容。要让子类调用方法时同时输出父类的内容,只需要在子类的重写方法里通过super关键字调用父类的display()方法即可。

修改后的subB类代码

public class subB extends superA {
    @Override
    public void display() {
        // 先执行父类的display方法,输出父类内容
        super.display();
        // 再输出子类自定义的内容
        System.out.println("In sub class subB");
    }
}

原理说明

  • super关键字用于在子类中访问父类的成员(包括方法和属性),调用super.display()会直接执行父类superA中的display()方法,输出第一行文本。
  • 之后再执行子类自己的System.out.println语句,就能实现先输出父类内容、再追加子类内容的效果。

测试效果

当你创建subB的对象并调用display()方法时,控制台会输出:

In super class superA
In sub class subB

而subC类可以保持原有代码不变,它的对象调用display()时依然只会输出自己的内容,不会受影响。

内容的提问来源于stack exchange,提问作者rushabhvg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 15:13:14