Java 中子类覆盖父类的两条规则是:

  1. 子类方法必须与父类方法具有相同的方法签名(即方法名、参数类型和参数顺序必须相同),并且返回类型可以是父类方法返回类型的子类型或相同类型。

  2. 子类方法不能比父类方法抛出更多或更宽泛的异常。

这两条规则的目的是为了保证子类方法与父类方法的行为一致性和兼容性。

第一条规则保证了子类方法与父类方法的方法名、参数类型和参数顺序相同,从而保证了子类方法在使用时可以作为父类方法的替代品。这样,当使用父类类型的引用指向子类对象时,可以通过父类类型的引用调用子类的重写方法,实现多态性。同时,由于返回类型可以是父类方法返回类型的子类型或相同类型,因此子类方法可以返回更具体的类型,增加了灵活性。

第二条规则保证了子类方法抛出的异常不会比父类方法更多或更宽泛。这样做的目的是为了保证子类方法在使用时不会引入额外的异常处理逻辑,从而提高代码的可读性和可维护性。如果子类方法抛出了更多或更宽泛的异常,那么使用父类类型的引用调用子类方法时,必须处理更多的异常,这会增加代码的复杂性。因此,为了保持代码的一致性,规定子类方法不能抛出更多或更宽泛的异常。


原文地址: https://www.cveoy.top/t/topic/o5BY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录