2013-01-21 37 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;