我怎么能添加这个属性?

时间:2011-09-26 22:24:07

标签: java

我有一个名为ShapeBase的类。它是抽象的,必须实现draw方法。它具有宽度和高度等实例变量。由此,Circle,Line和Rectangle是子类并实现draw方法。 Line类没有isFilled属性(get / set)但是Rectangle和Circle do。我显然可以将属性分别添加到两个区域,但稍后我可能想要动态收集所有可以“填充”的形状。我想要制作一个填充的界面,但问题是我必须为两者实现getter和setter。在C ++中我会使用多重继承来解决这个问题,但是我可以用Java来解决这类问题呢?

由于

3 个答案:

答案 0 :(得分:1)

您可以拥有一个FillableShapeBase,它是抽象的并扩展ShapeBase但是具有添加的isFilled属性,包含getter和setter。 RectangleCircle可以继承FillableShapeBase

答案 1 :(得分:1)

public abstract class FillableShape extends Shape {
    // isFilled
}

public class Circle extends FillableShape {
   ....
}

public class Rectangle extends FillableShape {
   ....
}

答案 2 :(得分:0)

为什么不简单地让FilledShape成为一个继承自ShapeBase并实现isFilled的抽象类?