多态(Polymorphisn)

通过继承,一个可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。C# 中的每种类型都是多态的。类型可用作它们自己的类型或用作 Object 实例,因为任何类型都自动将 Object 当作基类型。

多态性不仅对派生类很重要,对基类也很重要。任何情况下,使用类实际上都可能是在使用已强制转换为基类类型的派生类对象。基类的设计者可以预测到其基类中可能会在派生类中发生更改的方面。例如,表示汽车的基类可能包含这样的行为:当考虑的汽车为小型货车或敞篷汽车时,这些行为将会改变。基类可以将这些类成员标记为虚成员,从而允许表示敞篷汽车和小型货车的派生类重写该行为。

当派生类从基类继承时,它会获得基类的所有方法、字段、属性和事件。若要更改基类的数据和行为,您有两种选择:可以使用新的派生成员替换基成员,或者可以重写虚拟的基成员。

使用新的派生成员替换基类的成员需要使用 new 关键字。如果基类定义了一个方法、字段或属性,则 new 关键字用于在派生类中创建该方法、字段或属性的新定义。new 关键字放置在要替换的类成员的返回类型之前。例如:

 1public class BaseClass
 2{
 3    public void DoWork() { }
 4    public int WorkField;
 5    public int WorkProperty
 6    {
 7        get return 0; }
 8    }

 9}

10
11public class DerivedClass : BaseClass
12{
13    public new void DoWork() { }
14    public new int WorkField;
15    public new int WorkProperty
16    {
17        get return 0; }
18    }

19}

20
posted @ 2008-06-10 11:36  <一路向西  阅读(146)  评论(0)    收藏  举报