在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。 是否正确?

 我来答
ansenyou
2013-01-21 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:8%
帮助的人:7998万
展开全部
你要先理解重写、重载、重定义。
1、重定义new:派生类对基类的成员函数重新定义,即派生类定义了某个函数。该函数的名字与基类中的函数名字一样。
特点:1、不在同一个作用域,分别位于基类、派生类;2、函数的名字必须相同; 3、对函数的返回值、形参列表无要求
特殊情况:若派生类定义的该函数与基类的成员函数完全一样。返回值、形参列表均相同,且基类的该函数为virtual,则属于派生类重写基类的虚函数
作用效果:若重新定义了基类中的一个重载函数。则在派生类中,基类中该名字的函数,即其他所有重载版本,都被自动隐藏,包括同名的虚函数。
2、重载:overload:函数名字相同,但它的形参个数或者顺序,或者类型不同,但是不能靠返回类型来判断。
特点:1、位于同一个类中;2、函数的名字必须相同;3、形参列表不同可能是参数个数 or 类型 or 顺序 不同,返回值无要求
特殊情况:若某一个重载版本的函数前面有virtual修饰,则表示它是虚函数。但它也是属于重载的一个版本
作用效果和原理:编译器根据函数不同的参数表将函数体与函数调用进行早绑定。重载与多态无关,只是一种语言特性,与面向对象无关。
3、重写override:派生类重定义基类的虚函数,即会覆盖基类的虚函数
特点:1、不在同一个作用域,分别位于基类、派生类;2、函数名、形参列表、返回值相同;3、基类的函数是virtual
特殊情况:若派生类重写的虚函数属于一个重载版本,则该重写的函数会隐藏基类中与虚函数同名的其他函数。
故:

在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。 是对的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式