2013-09-28 32 views
0

我有一個名爲intclass的接口類。這個接口類有一個叫做mymethod的方法。我創建了一個名爲impclass的類,它實現了具有mymethod代碼的接口類。不過,我有另一種稱爲dmeth的方法,它接收接口intclass作爲參數。方法dmeth位於不同的類中,稱爲dclass。但是,當我運行dclass時,mymethod下的代碼不會執行。我不明白爲什麼。下面 是代碼:實現接口類的類下的代碼不執行

public interface intclass{ 

public void mymethod(string message); 
} 


public class impclass 
implements intclass{ 

public void mymethod(String message){ 

System.out.println("this is the message"+message); 
} 

} 



public class dclass{ 

public void dmeth(intclass cl){ 
.... 
} 

public static main(String[] arg0){ 
impclass icl =new impclass() 
dclass d=new dclass(); 
d.dmeth(icl); 
} 
} 

我有什麼事情不知道錯了。在情況下,甚至有關於對功能的MyMethod預期參數錯誤,我預計錯誤,或者程序的崩潰。但在我的情況下,程序運行平穩,但System.out.println(「這是消息」+消息);不打印。我試圖在mymethod函數和調試中休息一下,但那時我才意識到mymethod函數甚至沒有達到。有沒有人有一個想法什麼可以進行

+2

那麼'dmeth'中的代碼是什麼?你真的叫'cl.mymethod'嗎? –

+0

是的,'...'是做什麼的?我猜它應該做'cl.myMethod(someString)' – Aaron

+0

@JonSkeet dmeth只通知一個庫,它已經得到intclass – eskoba

回答

0

字符串和字符串不是一回事。意識到這一點,當你鍵入

public interface intclass{ 
    public void mymethod(string message); 
} 

public class impclass 
implements intclass{ 

    public void mymethod(String message){ //Note the Uppercase S 
     System.out.println("this is the message"+message); 
    } 
} 

此外,您impclass缺少構造函數,你是不是調用以任何方式方法。你的dmeth應該包含

public void dmeth(intclass cl){ 
    cl.mymethod("Message"); 
} 

爲了mymethod被執行。