我们在刚开始学习多态时,会很郁闷,不知道Abstract和Virtual 到底该怎么用,有什么区别。我刚开始也有这种疑惑。
Abstract是定义抽象方法,是不能具体实现的,如果想用这个方法,我们需要在子类中进行重写。我们先举个例子:
在抽象类person中,我们定义一个抽象方法draw()。
基类中这样写:public abstract draw();
而在子类中,我们需要重写该方法,
这样写:
public override draw()
{
*******************;
}
而Virtual 最大的不同就是,这个方法定义在基类中时,要看我们自己在子类中重不重写该方法。如果不重写,那这个方法就可以具体实现。如果重写了的话,那
在具体实现时,就是使用子类重写后的该方法。
举个例子:
基类中:
public virtual draw()
{
**************;
}
子类中:
public override draw()
{
**************;
}
我这么说不知道大家明白了没有。有疑问可以继续问我
|