java方法重载和重写简介说明
下文笔者讲述Java中方法重载(Overloading)
和方法重写(Overriding)的简介说明:
和方法重写(Overriding)的简介说明:
方法重载(Overloading)
方法重载
是指在同一个类中定义多个方法
它们具有相同的方法名但参数列表不同(参数类型不同、参数数量不同或两者都不同)
方法重载
主要目的是提高代码的可读性和灵活性。
特点:
- 方法名相同:
重载的方法必须具有相同的方法名
- 参数列表不同:
参数的数量、类型或顺序必须不同
- 返回类型可以不同:
返回类型不同不是重载的必要条件,但可以作为重载的一部分
- 访问修饰符可以不同:
访问修饰符(如`public`, `private`等)不同不会导致重载
- 异常声明可以不同:
异常声明不同也不会导致重载
例
public class Calculator {
// 重载方法:两个整数相加
public int add(int a, int b) {
return a + b;
}
// 重载方法:三个整数相加
public int add(int a, int b, int c) {
return a + b + c;
}
// 重载方法:两个双精度浮点数相加
public double add(double a, double b) {
return a + b;
}
}
方法重写(Overriding)
方法重写
是指子类重新定义父类中已有的方法
且方法签名(方法名和参数列表)必须完全相同
方法重写的主要目的是实现多态性
允许子类提供特定于自身的实现
特点:
- 方法名相同:
重写的方法必须具有相同的方法名。
- 参数列表相同:
重写的方法必须具有相同的方法参数列表。
- 返回类型相同或兼容:
重写的方法返回类型必须与父类方法的返回类型相同
或
返回类型的子类型(协变返回类型)。
- 访问修饰符不能更严格:
重写的方法访问修饰符不能比父类方法更严格
(例如,父类方法是`public`,子类方法不能是`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");
}
}
方法重载和方法重写汇总说明
- 方法重载:
发生在同一个类中
方法名相同,参数列表不同。
- 方法重写:
发生在子类中
方法名和参数列表与父类相同
实现不同的功能。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


