我有這樣的Java接口:如何使這個Java接口靈活
public class RedBox implements Box {
public void open() {
}
public void close() {
}
}
的問題是,我期待加入其他類:
public interface Box {
public void open();
public void close();
}
該接口由該類擴展在未來還將實現Box界面。這些新的類將有自己的方法,例如其中一個類將有一個putInBox()方法,但是如果將putInBox()方法添加到Box接口,我還將被迫添加一個putInBox的空實現( )方法添加到之前實現Box界面的類中,如上面的RedBox類。
我加入putInBox()的盒接口,因爲有一類呼叫者需要的是實現了盒接口,例如類對象:
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接口的每個以前的類中。
爲什麼您需要將'putInBox()'添加到'Box'接口? – BalusC
我想將putInBox()添加到Box接口,因爲我有另一個類,它調用實現Box接口的類的方法,通過獲取這些類的對象,例如:Caller c = new Caller(new RedBox()); – John