【发布时间】:2015-03-05 21:16:02
【问题描述】:
我想在多个子类中有一个方法,它基本上可以完成某件事(比如获取用户信息),但在主类中声明(并且具有与主类不同的参数和定义)。这可能吗?
我知道这并不是真正的压倒一切,但可以这样做还是不适合构造方法?
【问题讨论】:
-
如果新方法有不同的参数,那么它就是重载,而不是覆盖。子类可以做到这一点,不会有任何问题。
-
@Downvoter 想发表评论吗?
-
@LuiggiMendoza 如果被覆盖的方法将参数类型替换为其子类型怎么办?
-
@LuiggiMendoza 今天我使用
@Override注释尝试了这些场景:1) 将参数类型替换为其子类 - 不允许 3) 将返回类型替换为其子类 - 允许 -
@valijon 我的错。没错,使用子类作为参数是重载而不是覆盖。您可以在 JLS 中验证这些规则:Override 和 Overloading