2012-06-18 81 views

回答

0

你可以使用base(...)在你的孩子類的ctor。

foreacmple:

public class Child : BaseClass 
{ 
    public Child() : base(/*some parameters*/) //CALLING BaseClass parametrized ctor 
    { 
    } 
} 

只要注意,如果你並不需要一些具體的參數,只是沒有做任何事情,導致BaseClass默認ctor將由方式被稱爲當你調用ctorChild類。

+0

如果我在子類中創建新的構造函數,該怎麼辦?參數將根據孩子或父母的構造函數被初始化? –

+0

如果使用參數化的構造函數,那麼可以自動調用**的基類的唯一ctor是* default *構造函數。所以在參數化的情況下,從相關選項中選擇適當的一個。 – Tigran

0

你必須爲孩子定義構造函數。您可以在構造函數原型和其實現之間使用: base()調用基類的構造函數:

public class Parent { 
    public Parent() { 
    ... 
    } 
} 

public class Child : Parent { 
    public Child() : base() { // calls Parent.ctor 
    } 
} 
-1

當然。

您在「base」關鍵字之後。

public class Fruit 
{ 
    string TypeOfFruit { get; set; } 

    public Fruit (string typeOfFruit) 
    { 
     TypeOfFruit = typeOfFruit; 
    } 

} 

public class Apple : Fruit 
{ 
    string AppleType { get; set; } 

    public Apple(string appleType) : base("Apple") 
    { 
     AppleType = appleType; 
    } 

} 
1

這種繼承示例顯示:

  • 如何從一個新的構造函數調用父類的構造函數對孩子
  • 如何通過由父類的構造

代碼所需要的參數樣品:

public class Parent 
{ 
    private object _member; 

    public Parent(object member) 
    { 
     this._member = member; 
    } 
} 

public class Child : Parent 
{ 
    public Child(object member) 
     : base(member) 
    { 
    } 
} 
+0

非常感謝。它真的是一個有用的答案。 –

+1

@AliEssa沒問題。歡迎來到StackOverflow。當您找到有用的答案時,您可以投票。如果是您自己的問題,您可以通過「接受」答案將答案標記爲最佳答案。 – Aphelion

+0

我發現當我在父項中創建一個更多的構造函數時,我應該創建一個具有相同參數的子構造函數。 –

0

可以很好地定義了默認的僅在情況下規定的子類構造函數,當你沒有爲類定義構造函數

同時如何來查找父的構造

它會檢查父類中是否存在無參數的構造函數,並且如果沒有它(編譯器讓您知道相同),或者您將不得不調用父構造函數的參數,如base("This is the string parameter")

如果您的意思是其他問題,請更新問題。

相關問題