方法重载(Overloading):
- 方法重载是指在同一个类中定义多个同名但参数列表不同的方法。
- 重载方法必须具有不同的参数类型、参数个数或参数顺序。
- 重载方法的返回类型可以相同也可以不同。
- 重载方法可以有不同的访问修饰符(public、private、protected)。
- 重载方法可以抛出不同的异常。
- 方法重载的目的是为了提供一种更方便、更灵活的使用方式,根据传入的参数类型或个数的不同,选择合适的方法进行调用。
以下是一个方法重载的示例:
public class Calculation {
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):
- 方法重写是指子类覆盖父类中同名、同参数列表、同返回类型的方法。
- 重写方法必须具有相同的方法签名,即方法名称、参数列表和返回类型必须一致。
- 重写方法的访问修饰符不能比父类的方法更严格(例如,不能由public改为private)。
- 重写方法不能抛出比父类方法更宽泛的异常,可以不抛出异常或抛出相同的异常。
- 方法重写是实现多态性的一种方式,通过子类对象调用重写的方法时,实际上执行的是子类中的方法。
以下是一个方法重写的示例:
public class Animal {
public void makeSound() {
System.out.println("Animal makes sound");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Cat meows");
}
}
在上面的示例中,Animal类中定义了一个名为makeSound的方法,而Cat类继承自Animal类并重写了makeSound方法。当调用makeSound方法时,如果是Animal对象,则输出"Animal makes sound",如果是Cat对象,则输出"Cat meows"。这就是方法的重写。