读书人

虚函数和抽象函数有什么区别!该怎么处

发布时间: 2012-03-16 16:34:56 作者: rapoo

虚函数和抽象函数有什么区别!
二者的主要区别是什么
我感觉就是一样的
但是为什么有???

[解决办法]
函:由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很热心,说的很正点
[解决办法]

探讨
虚方法表示该方法是不完全的,可在派生类中通过override重写,可以自身包含实现
抽象方法是隐式的虚方法,自身不包含实现,必须在派生类中实现

[解决办法]
viena 说得很详细
[解决办法]

用abstract声明类的时候这个类不能被实例化
abstract生命方法的时候,不能包含方法实体
抽象类不一定非得包含抽象方法,但是抽象方法只能在抽象类中生命
virtrual则可以生命方法实体,子类中若没有override这个方法,则调用的是父类中的virtual方法
设计的时候具体看父类和子类之间是什么关系

读书人网 >asp.net

热点推荐