温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何重写java超类

发布时间:2026-09-20 14:27:18 来源:亿速云 阅读:84 作者:小樊 栏目:编程语言

在 Java 中,“重写(Override)超类”通常指方法重写(Method Overriding),也就是子类重新定义父类中的方法。下面从概念、规则、示例和注意事项几个方面说明。


一、什么是方法重写

方法重写是指:

  • 子类继承父类
  • 子类提供一个与父类方法签名相同的方法
  • 用于改变或扩展父类方法的行为
class Animal {
    void sound() {
        System.out.println("动物叫");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("汪汪汪");
    }
}

二、方法重写的基本规则

  1. 方法名必须相同
  2. 参数列表必须完全相同
  3. 返回类型
    • 相同
    • 或是父类方法返回类型的子类型(协变返回)
  4. 访问修饰符不能更严格
    • 父类 protected → 子类可以是 protectedpublic
  5. 不能抛出比父类更多的受检异常
  6. 只能重写非 static非 final非 private 方法

三、使用 @Override 注解(推荐)

@Override
public void sound() {
    ...
}

好处:

  • 编译器帮你检查是否真的重写成功
  • 提高代码可读性

三、重写 vs 重载

对比项 重写(Override) 重载(Overload)
发生位置 子类与父类 同一类
方法名 相同 相同
参数 必须相同 必须不同
返回类型 有关联 无关

四、调用父类方法(super)

子类重写后,仍可使用父类逻辑:

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // 调用父类方法
        System.out.println("汪汪汪");
    }
}

五、常见错误

❌ 写错方法名或参数(变成重载) ❌ 修饰符变小 ❌ 重写 static 方法(实际是隐藏,不是重写)


六、示例:完整 Demo

class Parent {
    void show() {
        System.out.println("Parent show");
    }
}

class Child extends Parent {
    @Override
    void show() {
        System.out.println("Child show");
    }
}

public class Test {
    public static void main(String[] args) {
        Parent p = new Child();
        p.show(); // 输出 Child show
    }
}

如果你说的“重写超类”是指:

  • 重写构造方法
  • 重写属性
  • 使用接口/抽象类
  • 设计层面的“替换父类行为”

可以告诉我具体场景,我可以更针对性地讲。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI