我想知道爲什麼傳遞一個父級子類的兩級對象Command
不起作用。爲什麼傳遞一個Command對象不起作用?
這樣的(A類B的父和B是C的親本):
Class A (Creates the instance of the Command object that is passed down to B)
+-- Class B (Pass down the object to C)
+------- Class C (Callsthe execute() method of the Command object)
然而,當在B類中創建命令對象的實例和向下傳遞到C類它工作正常。
例子:
編輯:
例(手寫代碼):
public class A {
private Command command;
private B b;
public A() {
b = new B();
command = new Command() {
public void execute() {
// Do something
}
}
b.setCommand(command);
}
public class B {
private Command command;
private C c;
public B() {
c = new C();
c.setCommand(this.command);
}
public void setCommand(Command command){
this.command = command;
}
}
public class C {
private Command command;
public C() {
}
public void doStuff() {
command.execute();
}
public void setCommand(Command command){
this.command = command;
}
}
目前尚不清楚你的圖是什麼意思 - 顯示的代碼將使其更加清晰,最好是在一個簡短而完整的例子,只要是可行的。 – 2012-01-08 09:18:30
A類是B的父親,B是C的父母。 – xybrek 2012-01-08 09:19:32
你能澄清一下「不起作用」是什麼意思嗎?當你執行它時會發生什麼?請注意,這裏沒有涉及繼承,與此處「父母 - 孩子」的含義相反。 – 2012-01-08 09:32:44