java - 禁用派生类上的继承方法

标签 java derived-class

有没有办法在 Java 派生类中“禁用”从基类继承的方法和/或字段?

例如,假设您有一个具有 rotate() 方法的 Shape 基类。您还可以从 Shape 类派生各种类型:SquareCircleUpwardArrow 等。

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/

相关文章:

java - 在值数组中查找第一个和第二个?

c++ - 检查调用者和参数是否相同

C++:派生类, "no matching constructor"错误

java - 为什么不使用这种更简单的 Java 图形实现?

java - JComponents 没有显示图片背景?

java - servlet的使用比struts2中的action-classes好吗?

java - 用于查找 <link rel ="stylesheet"标签的正则表达式

c++ - 从其名称的字符串生成派生类实例。 (即反射)

c++ - 多个派生类调用基类成员函数

python - 如何将基类的映射方法用于派生类?