有什么方法可以在 Java 派生类中“禁用”从基类继承的方法和/或字段?
例如,假设您有一个 Shape
基类,它有一个 rotate()
方法。 You also have various types derived from the Shape
class: Square
, Circle
, UpwardArrow
, etc.
Shape
有一个 rotate()
方法。但我不希望 rotate()
可供 Circle
的用户使用,因为它毫无意义,或者 UpwardArrow
的用户不想要 UpwardArrow
因为我不想要 ---
能够旋转。
原文由 Jean-François Corbett 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不认为这是可能的。但是,您可以通过从其规范中 删除 rotate() 方法来进一步改进 Shape 类,而是定义另一个 Shape 的 子类 RotatableShape 并让 Circle 派生 自 Shape 和所有其他 Rotatable 类 派生自 RotatableShape 。
例如: