C#的抽象类中,抽象方法和纯虚函数区别

1.C#中有没有纯虚函数的说法?即能否定义virtualvoidtest()=0;2.如果有,C#的抽象类中定义的抽象方法如:publicabstractvoidtest... 1.C#中有没有纯虚函数的说法?即能否定义 virtual void test()=0;
2.如果有,C#的抽象类中定义的抽象方法如:public abstract void test();
和抽象类中定义的纯虚函数有什么区别??
展开
 我来答
Dong_DoIt
2013-10-12
知道答主
回答量:9
采纳率:0%
帮助的人:10.3万
展开全部
问题1:含有virtual修饰符的方法称为虚拟方法。不能像你说的那样定义。
问题2:
1)虚拟方法,子类可以选择性重写此方法,也可以不重写;而抽象(abstract
)方法,子类必须重写。

2)虚拟方法可以有实体,如:
public virtual void Vt()
{
Console.WriteLine("A");
}
所以,可以直接调用虚拟方法;而抽象方法不能声明方法实体,public abstract void Ab(),不能直接调用。
3)虚方法可以实现多态,而抽象方法不可以
曹朕植
2015-08-07 · TA获得超过618个赞
知道小有建树答主
回答量:453
采纳率:33%
帮助的人:113万
展开全部
问题1:含有virtual修饰符的方法称为虚拟方法。不能像你说的那样定义。
问题2:
1)虚拟方法,子类可以选择性重写此方法,也可以不重写;而抽象(abstract
)方法,子类必须重写。

2)虚拟方法可以有实体,如:
public virtual void Vt()
{
Console.WriteLine("A");
}
所以,可以直接调用虚拟方法;而抽象方法不能声明方法实体,public abstract void Ab(),不能直接调用。
3)虚方法可以实现多态,而抽象方法不可以
如果一个类被声明为abstract,
则在该抽象类中,可以存在没有实现的方法,但该方法须声明为abstract,
在其子类中,通过override关键字修辞并包含具体的实现

抽象类中的虚方法使用virtual关键字描述,并在子类中实现
与抽象方法不同的是,虚方法可以有具体的实现,而抽象方法不可以有实现,
类似于接口中规范的定义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
破晓崇明
2013-10-12 · TA获得超过130个赞
知道小有建树答主
回答量:191
采纳率:100%
帮助的人:153万
展开全部
如果一个类被声明为abstract,
则在该抽象类中,可以存在没有实现的方法,但该方法须声明为abstract,
在其子类中,通过override关键字修辞并包含具体的实现

抽象类中的虚方法使用virtual关键字描述,并在子类中实现
与抽象方法不同的是,虚方法可以有具体的实现,而抽象方法不可以有实现,
类似于接口中规范的定义
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一郎大神
2013-10-13 · TA获得超过1180个赞
知道小有建树答主
回答量:1033
采纳率:92%
帮助的人:299万
展开全部
1.没有你说的纯虚函数,但是可以用委托通过匿名函数达到类似的效果。比如使用lambda表达式,x => x * 6指定名为x的参数并返回x的值计算的。如下面的示例所示,可以将此表达式传递给委托类型: 
delegate int del(int i);
static void Main(string[] args)
{
    del myDelegate = x => x * 6;
    int j = myDelegate(5); //j = 30 

2. 虚方法必须有实现部分,并为派生类提供了覆盖该方法的选项;
   抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PraiseChrist
2015-07-21 · 知道合伙人软件行家
PraiseChrist
知道合伙人软件行家
采纳数:1226 获赞数:11678
从事软件开发5年,工作之余研读圣经,善于回答圣经、宗教、基督教、软件等类别的问题。

向TA提问 私信TA
展开全部
高质量认证每次进来都是好几年之前的问题了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式