大家好,我是小欧!
今天我们来聊聊Java中的两个重要概念——重写(Override)和重载(Overload)。相信很多初学者在学习Java时都会被这两个看似相似的术语搞得一头雾水。那么,今天我们就来深入解析一下这两个概念,帮助大家不再混淆。
一、重写(Override)
什么是重写?
重写是指在子类中重新定义父类中的方法。换句话说,当子类继承父类时,可以对父类的方法进行重新实现,从而实现不同的功能。
重写的规则
- 方法名、参数列表必须相同。
- 返回类型必须相同,或是其子类型(协变返回类型)。
- 访问修饰符不能比父类方法的访问修饰符更严格(例如,父类方法是
public
,子类方法不能是protected
)。 - 只能重写非静态方法,静态方法不能被重写。
代码示例
我们来看一个简单的例子:
class Animal {
public void makeSound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.makeSound(); // 输出:Dog barks
}
<