重写的规则
- 方法签名必须相同:包括方法名、参数列表和返回类型(在 Java 5 及以后版本中,返回类型可以是父类方法返回类型的子类,称为协变返回类型)。
- 访问修饰符不能比父类更严格:例如,如果父类方法是
protected
修饰的,子类重写的方法可以是protected
或public
,但不能是private
。 - 不能抛出比父类方法更多的异常:子类重写方法抛出的异常类型必须是父类方法抛出异常类型的子类或相同。
重载的规则
- 方法名必须相同。
- 参数列表必须不同:参数的类型、个数或顺序至少有一个不同。
- 返回类型和访问修饰符可以不同:返回类型和访问修饰符不影响方法的重载,仅根据参数列表来区分不同的重载方法。