代码改变世界

【学习感悟】充分利用抽象类实现强制重写

2009-05-14 07:33  Robiplus  阅读(269)  评论(0)    收藏  举报

  最近在看Beginning c#object....发现抽象类有个用法,之前一直没注意到,所以来这和大家分享下....  

  之前都知道从abstract类可以派生到其他类(abstract or 非abstract)...但一直没有注意到可以从非abstract类派生到abstract类!....但仔细想来这样做有啥用呢?基于abstract方法的一个特点---强制多态,我们可以利用它要求之后的类重写被改为abstract的方法.

看个例子:

abstract class A : Object
{
    
//.
        
    
public abstract override string ToString();
}
    
sealed class B : A
{
    
public override string ToString()
    {
        
return string.Empty;
    }
}
 
abstract的A中把object的ToString()改为abstract从而在之后的类(比如这里的B)中强制要求override方法!