二者的主要区别是什么
我感觉就是一样的
但是为什么有???
------解决方案--------------------------------------------------------
虛函數:由virtual声明,它允许在派生类中被重写
public class myclass
{
public virtual int func1()
{
...
}
}
class myclass1:myclass
{
public override int func1()
{
...
}
}
抽象类、抽象函數:由abstract声明,在抽象类中可以定义抽象方法,抽象方法沒有执行代码,派生类中必须继承它,提供其执行代码
public abstract class myclass
{
public abstract int func1();
}
public class myclass1:myclass
{
public override int func1()
{
...
}
}
------解决方案--------------------------------------------------------
主要区别就是自身是否包含实现
------解决方案--------------------------------------------------------
共同点是都可以通过override重写,而override是面向对象的特征之一多态性的实现基础
------解决方案--------------------------------------------------------
顶一下,viena很热心,说的很正点
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
viena 说得很详细
------解决方案--------------------------------------------------------
用abstract声明类的时候这个类不能被实例化
abstract生命方法的时候,不能包含方法实体
抽象类不一定非得包含抽象方法,但是抽象方法只能在抽象类中生命
virtrual则可以生命方法实体,子类中若没有override这个方法,则调用的是父类中的virtual方法
设计的时候具体看父类和子类之间是什么关系