温馨提示×

温馨提示×

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

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

java Override重写怎么用

发布时间:2026-10-24 16:32:31 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在 Java 中,@Override 用来重写(Override)父类或接口中的方法。它的作用是:

  1. 明确告诉编译器“我是在重写父类方法”
  2. 如果方法签名写错(比如拼错、参数不对),编译器会直接报错,避免低级 bug

一、基本用法(最常见)

1️⃣ 父类

class Animal {
    public void speak() {
        System.out.println("动物叫");
    }
}

2️⃣ 子类重写

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

3️⃣ 使用

public class Test {
    public static void main(String[] args) {
        Animal a = new Dog();
        a.speak();  // 输出:汪汪汪
    }
}

✅ 这里 @Override 表示:Dog 的 speak() 是重写 Animal 的


二、重写规则(很重要)

✅ 方法名 必须一样
✅ 参数列表 必须一样
✅ 返回类型:

  • 可以是原返回类型
  • 或原返回类型的子类(Java 5+)

❌ 不能缩小访问权限

// 错误示例
class Animal {
    public void speak() {}
}

class Dog extends Animal {
    @Override
    protected void speak() {} // ❌ 不能比 public 小
}

❌ 不能抛出比父类更多的受检异常


三、重写 vs 重载(容易混)

对比 重写 Override 重载 Overload
位置 子类 同一个类
方法名 相同 相同
参数 必须相同 必须不同
@Override ✅ 用 ❌ 不能用

四、接口中的 @Override

interface Run {
    void run();
}

class Cat implements Run {
    @Override
    public void run() {
        System.out.println("猫跑");
    }
}

五、常见错误示例

❌ 写错方法名(编译器直接报错)

@Override
public void spek() { } // 编译错误

❌ 参数不一致(变成重载,不是重写)

@Override
public void speak(String s) { } // 编译错误

六、总结一句话

@Override 就是“我故意改写了父类/接口的方法,请编译器帮我检查”

如果你愿意,我也可以:

  • 用 通俗比喻 讲
  • 结合 面试常问点
  • 给你 练习题

你想看哪种?

向AI问一下细节

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

AI
助
手