有没有办法在 Java 派生类中“禁用”从基类继承的方法和/或字段?
例如,假设您有一个具有 rotate()
方法的 Shape
基类。您还可以从 Shape
类派生各种类型:Square
、Circle
、UpwardArrow
等。
Shape
有一个 rotate()
方法。但是我不希望 rotate()
对 Circle
的用户可用,因为它没有意义,或者 UpwardArrow
的用户,因为我不希望 UpwardArrow
能够旋转。
最佳答案
我认为这是不可能的。 但是,您可以通过从规范中删除 rotate() 方法来进一步细化 Shape 类,而是定义另一个名为 的 Shape 子类 RotatableShape 并让 Circle 从 Shape 派生,而所有其他 Rotatable 类 从 RotatableShape 派生。
例如:
public class Shape{
//all the generic methods except rotate()
}
public class RotatableShape extends Shape{
public void rotate(){
//Some Code here...
}
}
public class Circle extends Shape{
//Your implementation specific to Circle
}
public class Rectangle extends RotatableShape{
//Your implementation specific to Rectangle
}
关于java - 禁用派生类上的继承方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5486402/