c# 怎么重写基类的构造函数和虚拟方法

 我来答
高质量团赛
推荐于2018-05-17 · 知道合伙人软件行家
高质量团赛
知道合伙人软件行家
采纳数:5899 获赞数:97602
获得全国计算机应用技术证书

向TA提问 私信TA
展开全部
1、重写:继承时发生,在子类中重新定义父类中的方法,子类中的方法和父类的方法是一样的,即方法名,参数,返回值都相同。
例如:基类方法声明为virtual(虚方法),派生类中使用override申明此方法的重写.
namespace 方法重写
{
class Program
{

static voidMain(string[] args)
{
BaseClass CO =new ClassOverride();
CO.SetName("Override");
}
//基类
public classBaseClass
{
public virtualvoid SetName(string name)
{
Console.WriteLine("基类:我的名字是" + name);
}
}

//派生类
public classClassOverride : BaseClass
{
publicoverride void SetName(string name)
{
Console.WriteLine("Override:我的名字是" + name);
}
}

}
}

2、重写override一般用于接口实现和继承类的方法改写,要注意:
1)覆盖的方法的标志必须要和被覆盖的方法的名字和参数完全匹配,才能达到覆盖的效果。
2)覆盖的方法的返回值必须和被覆盖的方法的返回一致。
3)覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类。
4)被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

3、虚方法和抽象方法的区别

1)虚方法有一个实现部分可以被子类继承,从而使子类获得和基类相同的方法,另外也为派生类提供了覆盖该方法的选项。相反,抽象方法没有提供实现部分,是一种强制派生类覆盖的方法(否则派生类不能成具体类)

2)(abstract)抽象方法只能在抽象类中声明,(virtual)虚方法不是。

3)(abstract)抽象方法必须在派生类中重写而(virtual)虚方法不必。

4)(abstract)抽象方法不能声明方法实体,虚方法可以。
阳光的雷咩咩
2014-09-16 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7821万
展开全部

构造函数没听说过重写的,但是有类似继承的

public subclass(int x):base(x)

重写虚方法直接

public override void F()
{
    XXX;
}
追问

它题目是这样的!

追答
就用我上面那形式套就行了。你先把大体的代码贴出来,我们再给你改吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哇塞一一有灰机
2014-09-19 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:146
采纳率:100%
帮助的人:77.4万
展开全部
C#基类的构造函数和虚拟方法的重写都是在原有的基础上添加新的方法或者函数,改变参数的个数或者方法的属性或字段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanglui1990
2014-09-24 · TA获得超过125个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:117万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式