1. 重载(Overload)与重写(Override)的区别
重载(Overload)
- 定义:在同一个类中,方法名相同,但参数列表不同(参数类型、参数数量或参数顺序不同)。
- 返回值:与返回值无关,返回值类型可以相同也可以不同。
- 访问修饰符:可以不同。
- 异常:可以抛出不同的异常。
- 示例:
public class Example { public void print(int a) { System.out.println(a); } public void print(String a) { System.out.println(a); } }
重写(Override)
- 定义:在子类中重写父类的方法,方法名、参数列表和返回值类型必须相同。
- 访问修饰符:子类方法的访问修饰符必须大于或等于父类方法的访问修饰符(例如,父类方法是
protected
,子类方法可以是protected
或public
)。 - 异常:子类方法不能抛出比父类方法更宽泛的异常(即子类方法抛出的异常必须是父类方法抛出异常的子类或相同异常)。
super
关键字:可以通过super.方法名()
调用父类的方法。- 示例:
class Parent { protected void print() { System.out.println("Parent"); } }