有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

说明如何使这个Java接口灵活

我有一个Java接口:

public interface Box {
   public void open();
   public void close();
}

该接口由此类扩展:

public class RedBox implements Box {

   public void open() {

   }

   public void close() {

   }
}

问题是,我希望将来添加其他类,这些类也将实现Box接口。这些新类将有自己的方法,例如其中一个类将有一个putInBox()方法,但如果我将putInBox()方法添加到Box接口,我也将被迫将putInBox()方法的空实现添加到之前实现Box接口的类中,如上面的RedBox类

我将putInBox()添加到Box接口,因为有一个类调用者接受实现Box接口的类的对象,例如:

public class Caller {

    private Box box;
    private int command;

    public Caller(Box b) {
        this.box = b;
    }

    public void setCommandID(int id) {
        this.command = id;
    }

    public void call() {

        if(command == 1) {
            box.open();
        }
        if(command == 2) {
            box.close();
        }

        // more commands here...
    }
}

Caller c = new Caller(new RedBox());

c.call();

我如何在新类中实现Box接口,而不必向实现Box接口的以前每个类中添加新方法的空实现


共 (0) 个答案