首页 > 解决方案 > 如何在不使用任何导入的情况下根据条件在同一类中实现两个接口

问题描述

我想知道当一个类中有两个接口时,如何一次使用一个接口。例如,当 Cube 不是 fixed() 时,我可以通过接口属性更改它的长度。但是,一旦它被修复它只能访问接口计算哪个是volume()或area()。

public interface properties <T> {
    T size(int length);
    T fixed();
}

public interface calculate{
    int volume();
    int area();
}

public class Cube implements properties, calculate{
    private final int length;

    public Cube(int length){this.length = length;}

}

标签: javainterface

解决方案


如果您不在Cube类型级别表示 a 的固定性,那么您的代码将难以维护。

我会有一个可变的CubeBuilder,它只有:

class CubeBuilder {
  private int length;
  public void setLength(int newLength) { this.length = newLength; }
  public Cube build() { return new Cube(length); }
}

然后是Cube具有volume和的不可变对象area

否则,当您处理程序时,您将永远无法确定可以将非固定传递给哪些方法Cube,以及给定的Cube引用是固定的还是非固定的。


推荐阅读