2012年11月8日星期四

《C#与.net高级编程》——第三支柱:C#的多态

《C#与.net高级编程》——第三支柱:C#的多态

用virtual关键字标记的方法称为虚方法,如果子类希望改变虚方法的实现细节就必须使用 override关键字。

抽象类

abstract关键字

防止创建毫无意义的基本类,使用abstract关键字创建抽象基类,防止被实例化

使用abstract关键字创建抽象方法,强制每一个子类重写特定的方法,abstract成员没有提供任何实现。

(注:抽象方法只可以定义在抽象类中,如果不是这样的话,就会收到编译器错误)

成员投影

如果派生类定义的成员和定义在蕨类中的成员一致,派生类投影了父类的版本。

如:我们从一个不是自己创建的类来创建子类就是很可能发生这样的情况(基类和子类出现同一个方法名。)

解决方案:

  1. 使用override关键字更新父版本,但是如果我们对定义基类的代码没有访问权限,我们就不能将方法修改为虚方法。
  2. 我们可以为派生类型的成员添加new 关键字。这样就可以表明派生类型的实现故意设计为隐藏父类的版本。



TAG: