2013-10-23 40 views
6

訪問基類通過派生類B對象在c#中的函數是否有任何方式可以訪問A類的函數(Sum)通過B類對象獲取輸出10.?訪問基類通過C類中的驅動類B對象的函數#

Class A 
{ 
    public int Sum(int i) 
    { 
     return i+3; 
    } 
} 

Class B:A 
{ 
    public int Sum(int i) 
    { 
      return i+4; 
    } 
} 

B objectB=new B(); 

int result=objectB.Sum(7); 

output:11 
+0

選擇哪個'Sum'方法執行是有條件的還是應該'A'的'sum'方法總是由'B'調用? – NotMe

回答

8

聲明,而不是一個B可變A,同時仍使用B的構造。

A objectB = new B(); 
int result=objectB.Sum(7); 

這將使用A的方法。這是唯一的,因爲該方法是陰影而不是重寫。

您還會在中獲得編譯器警告,您的方法Sum可能是,您可能想將其定義爲public new int Sum(int i)以指示隱藏是有意的。

+0

你有一個很好的答案非常感謝你 –

+0

你能讓我知道我怎麼能讓我的哎呀概念強?謝謝 –

+0

除了練習和閱讀它,我沒有任何魔術技巧提供。它將帶有經驗。不要猶豫,瞭解基礎知識。起初,你可能會認爲你已經知道這些東西,但是你會鞏固你腦海中的基本概念,這將幫助你理解更復雜的概念。 – Vache

相關問題