在 Java 中,**方法重写(Override)的返回类型必须兼容**:
1. **基本类型/void**:必须完全相同(如 `int` 不能改成 `long`)。
2. **引用类型**:子类方法的返回类型可以是父类方法返回类型的**子类**(**协变返回类型**,Java 5+ 支持)。
### 示例:协变返回类型
```java
class Animal {
Animal get() { return new Animal(); }
}
class Dog extends Animal {
@Override
Dog get() { return new Dog(); } // 合法:Dog 是 Animal 的子类
}
```
**一句话总结**:重写时返回类型必须相同或是父类返回类型的子类(协变)。