2013-05-10 179 views
1

只是需要一些幫助,嵌套類和繼承..C#嵌套類和繼承

namespace blah 
{ 
    private abstract class InheritedSomething 
    { 
     public void doSomething() {}; 
    } 

    class OtherClass : InheritedSomething 
    { 
     //Stuff 

     class NestedClass : InheritedSomething 
     { 
      //Stuff 
     } 
    } 
} 

這是做事的正確方法是什麼? NestedClass繼承InerhitedSomething似乎有點多餘,當它的父類已經繼承這個......但是當我從NestedClass中刪除繼承時,它要求我使doSomething()成爲一個靜態方法。

所以我的問題是,它的方式是「正確的」 - 無論OtherClassNestedClass繼承InheritedSomething或僅OtherClass繼承InheritedSomethingdoSomething()成爲public static void

謝謝!

+0

應該在兩個類中都有相同的實現嗎?或者在OtherClass vs NestedClass中有什麼不同? – 2013-05-10 04:53:25

回答

0

這種設計沒有任何問題。

建議可以使方法變爲靜態是一個完全獨立的問題。請注意,可以並不代表它應該。 (閱讀更多關於決定herehere)。當您刪除繼承時,doSomething不再覆蓋,從而有資格檢查此建議。

0

正確與否取決於你打算做什麼。

內部類型擁有對封閉類型成員的特權訪問權限,但不能從其派生。

這些課程的目的是什麼?