什么是 Overload 和 Override? 两者有何区别?
时间: 2023-07-12 18:48:24 浏览: 146
Overload和Override是Java中的两个重要概念,它们的区别如下:
1. Overload(重载)
Overload是指在同一个类中定义多个方法,它们具有相同的方法名,但参数列表不同(参数个数、类型或顺序不同)。Java编译器根据方法调用时传入的参数类型和数量来确定调用哪个方法。
举例:
```
public void print(int a) {
System.out.println("int: " + a);
}
public void print(String s) {
System.out.println("String: " + s);
}
```
在上述代码中,print方法被定义了两次,一个是接收int类型参数,另一个是接收String类型参数。当调用print方法时,根据传入参数的不同,编译器会选择调用相应的方法。
2. Override(重写)
Override是指在子类中定义一个和父类中方法名、返回类型、参数列表相同的方法,从而覆盖父类中的方法。Java中的Override是基于继承实现的,子类可以重写父类的方法,从而实现多态。
举例:
```
public class Animal {
public void move() {
System.out.println("Animal can move");
}
}
public class Dog extends Animal {
@Override
public void move() {
System.out.println("Dog can run and walk");
}
}
```
在上述代码中,Dog类继承了Animal类,并且重写了move方法。当调用Dog对象的move方法时,会执行子类中的move方法。
总结:Overload和Override都是Java中的重要概念,Overload是指在同一个类中定义多个方法,它们具有相同的方法名,但参数列表不同;而Override是指在子类中重写父类的方法,从而实现多态。
阅读全文