方法重载(Overloading)
- 方法参数列表要求:
- 方法名相同,但参数列表不同。参数列表不同包括参数个数不同、参数类型不同或者参数顺序不同。返回值类型和访问修饰符可以不同,但仅返回值类型不同不能构成方法重载。
- 示例代码:
public class MethodOverloadingExample {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}
方法重写(Overriding)
- 方法参数列表要求:
- 方法名、参数列表(参数个数、类型、顺序)必须与父类中被重写的方法完全相同。返回值类型必须与父类中被重写方法的返回值类型相同或者是其子类型(Java 5.0 引入了协变返回类型)。访问修饰符不能比父类中被重写方法的访问修饰符更严格(例如,父类方法是
protected
,子类重写方法不能是 private
)。不能抛出比父类方法更多的异常(可以抛出更少或不抛出异常)。
- 示例代码:
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");
}
}