2013-01-21 39 views

回答

4

我認爲這可能是你誤解這裏的繼承。請允許我解釋一下。如果你已經知道這一點,請事先道歉 - 如果是這種情況,那麼你的問題可能會使用一些澄清,因爲這聽起來像你問的。如果你有一個繼承自某個基類的派生類,那麼該派生類具有與基類相同的所有屬性。例如:

public class Square 
{ 
    public int xSize { get; set; } 
} 

public class Rectangle : Square 
{ 
    public int ySize { get; set; } 
} 

如果聲明Rectangle rect = new Rectangle(),您可以訪問rect.xSizerect.ySize一樣。唯一一次你不能做到這一點是如果xSize是私人的。僅僅因爲它從Square類獲得了xSiz​​e並不意味着它必須從父類中獲取;它有它自己的。這裏有一個原因,這裏的術語使用「父母」和「繼承」等詞 - 如果有人說你有你父親的眼睛,這並不意味着你真的用他的眼睛;這意味着他們是一樣的,因爲你從他那裏繼承了他們。這裏是一樣的 - 派生類不會從父類中借用屬性;它只具有基類的所有屬性,以及你賦予它的任何額外屬性。

+2

+1爲「父親的眼睛」的聲明。這是一個很好的解釋繼承的方式,當然除非你有某種心理上的情感 - 「朱麗安是一個陌生的男孩,他父親的早逝對他有很深的影響,他愛他的父親,享受他父親的樣子看着他,他有他父親的眼睛,他們在地幔上的一個密封的瓶子裏「 – pstrjds

0

比方說你有兩個類看起來像這樣:

public class Parent 
{ 
    public int Age { get; set; } 
} 

public class Child : Parent 
{ 
    // This will get the 'base' class property 
    public int AgePlusFive { get { return base.Age + 5; } } 
} 

...後來別的地方你想要所以你說從子類獲取年齡屬性:

Child child = new Child(); 
int age = child.Age; 
int agePlusFive = child.AgePlusFive;