在子类中重写(Override)父类或接口中的方法时,可以改变以下内容:
1.方法体实现:子类可以提供自己的方法体实现,从而改变方法的行为。
2.访问修饰符:子类可以放宽(比父类更宽松)访问修饰符,但不能缩小。例如,父类中的方法声明为 public,子类可以将其重写为 protected 或 default,但不能改为 private。
3.返回类型:如果父类方法的返回类型是一个类,那么在子类中重写时,可以返回该类的子类。如果是基本数据类型,则必须保持相同。
抛出的异常:子类方法可以抛出父类方法抛出的异常的子类,或者不抛出异常,但不能抛出更宽泛的异常或者新的未声明的受检异常。
方法名和参数列表:方法名和参数列表必须保持与父类方法相同,否则就不算是重写。