最近在看Beginning c#object....发现抽象类有个用法,之前一直没注意到,所以来这和大家分享下....
之前都知道从abstract类可以派生到其他类(abstract or 非abstract)...但一直没有注意到可以从非abstract类派生到abstract类!....但仔细想来这样做有啥用呢?基于abstract方法的一个特点---强制多态,我们可以利用它要求之后的类重写被改为abstract的方法.
看个例子:
abstract的A中把object的ToString()改为abstract从而在之后的类(比如这里的B)中强制要求override方法!
之前都知道从abstract类可以派生到其他类(abstract or 非abstract)...但一直没有注意到可以从非abstract类派生到abstract类!....但仔细想来这样做有啥用呢?基于abstract方法的一个特点---强制多态,我们可以利用它要求之后的类重写被改为abstract的方法.
看个例子:
abstract class A : Object
{
//[img]http://images.cnblogs.com/dot.gif" alt="[/img].
public abstract override string ToString();
}
sealed class B : A
{
public override string ToString()
{
return string.Empty;
}
}
abstract的A中把object的ToString()改为abstract从而在之后的类(比如这里的B)中强制要求override方法!