2014-02-24 84 views
0

我有以下代碼。 (在C#) 接口1:繼承相同的方法實現

public interface iBclass 
{ 
    int addition(int a); 

    int s(); //and more methods from this ...... 


} 

接口2:

public interface iAclass 
{ 
    int addition(int a); 
    //more methods..... 
} 

類繼承兩個接口:

public class dClass : iAclass , iBclass 
{ 

    int iAclass.addition(int a) 
    { 
     return 0; 
    } 

    int iBclass.addition(int a) 
    { 
     return 1; 
    } 


    public int s() 
    { 
     return 3; 
    } 
} 

問題是我不能夠訪問該方法iAclass.addition(int a)與d對象和iBclass.addition(int a)

dClass d = new dClass(); 

如何通過'd'對象訪問這些方法?以及爲什麼這些接口方法不允許定義爲公共?

+0

看起來像你並不真的需要IAclass – markg

+0

@markg:我的IAclass具有不在IBclass中的額外函數嗎? –

+0

默認情況下它是私人權利? – ssilas777

回答

3

接口是明確實現的。所以,你只能通過接口調用它們:

dClass d = new dClass(); 
iAclass a = (iAclass)d; 
a.addition(123); // Calls implementation for iAclass 
iBclass b = (iBclass)d; 
b.addition(123); // Calls implementation for iBclass 

有關詳細信息,請參閱本link

+0

謝謝!工作中..... –