在Java中,方法重写是指子类重写父类中的方法。以下是Java中方法重写的规则:
1. 方法重写必须具有相同的方法名称、参数列表和返回类型。
2. 子类中重写的方法不能比父类中被重写的方法具有更低的访问权限。例如,如果父类中的方法是public,那么子类中重写的方法必须也是public,而不能是protected或private。
3. 子类中重写的方法不能抛出比父类方法更多的异常。如果父类方法声明了某个异常,那么子类方法可以不声明该异常,但不能声明其他异常。
4. 子类中重写的方法不能使用比父类方法更窄的返回类型。如果父类方法的返回类型是A类型,那么子类方法的返回类型可以是A类型或A的子类型。
5. 静态方法不能被重写,只能被隐藏。如果子类中定义了与父类中的静态方法具有相同名称、参数列表和返回类型的方法,那么该方法不是重写,而是隐藏父类的静态方法。
总结来说,方法重写要求子类中的方法与父类中的方法具有相同的方法签名(方法名称、参数列表和返回类型),并且不能限制访问权限、抛出更多的异常或使用比父类方法更窄的返回类型。