2014-10-07 40 views
0

假設我有聲明實現的接口沒有明確使用一個特定的類的對象

public interface MyInterface { 
    public void aMethod(); 
} 

public class MyClass implements MyInterface { 
    @Override 
    public void aMethod() { 
     Log.d("aMethod"); 
    } 
} 

而且我要聲明實現MyInterface的對象,這樣我就可以在構造函數如下

它實例
public class AnotherClass { 
    Class <? extends MyInterface> mObjectThatImplements; 

    public AnotherClass() { 
     // Says it cannot convert MyClass to Class <? extends MyInterface> 
     mObjectThatImplements = new MyClass(); 
    } 
} 

回答

4

您只需更改聲明類型。把它作爲一個接口,你可以給它分配任何實現。

public class AnotherClass { 
    MyInterface mObjectThatImplements; 

    public AnotherClass() {   
     mObjectThatImplements = new MyClass(); 
    } 
} 
+1

謝謝。將在12分鐘內接受 – Shai 2014-10-07 10:58:36

相關問題