注册 登录
编程论坛 C# 论坛

关于方法重写

over1230 发布于 2014-12-24 10:47, 943 次点击
在子类中对父类的方法进行重写,但如果不用关键字,也能实现子类中的方法覆盖父类的方法,
如果说加上new 是为了标记这个是覆盖父类的方法,还可以理解,那加virtural 和override,又有什么必要呢?
重写和覆盖又会有什么区别?按书上的例子感觉没什么区别,求指点。
9 回复
#2
xydddaxia2014-12-24 14:29
重写就是覆盖,重载才不一样
#3
lxsxd2014-12-25 08:22
楼主:碰到了一起学习前进的战友了。和你一样,我对这些问题都琢磨不透。有时一个小问题,可以让我苦思三五天。
2楼的正解。
#4
over12302014-12-25 20:33
回复 3楼 lxsxd
你应该已经把基础的学完了,已经开始提高了吧?
看我注册时间09年就注册了,当时想学,没沉下心来,现在是准备沉下心来好好学下。
现在看到抽象类,接口,索引器,看着总感觉没什么用,好多都还不理解,苦苦挣扎中。
#5
lxsxd2014-12-26 08:10
我现在看到窗体设计了。一样的感觉,第一,认为没有什么用;第二,学这个和我当前做的一点关系也没有。每次遇到难题总要苦苦思索,真羡慕那些有老师教的同学学习编程。
#6
lxsxd2014-12-26 08:11
这个论坛,我注册是比较早的,当时是自学FOX,中间隔了很多年,没有看这方面的书,也就是上半年开始,我开始看C#的
#7
Maick2015-01-02 14:22
都是人才..能自学..牛逼..
#8
闻!鸡起床2015-01-09 23:06
哎哎~作为一个大一新生,表示学这个很吃力啊
#9
lxsxd2015-01-10 10:02
以下是引用Maick在2015-1-2 14:22:29的发言:

都是人才..能自学..牛逼..

感兴趣,然后就看书,估摸着这应该算是自学。我很羡慕那些有老师讲课的同学。真心希望自己能坐在某个班里听课,然后和同学一起学习,一起开发。
#10
飘渺烟云2015-01-21 23:04
基类方法必须定义为 virtual。如果派生类中的方法前面没有 new 或 override 关键字,则编译器将发出警告,该方法将有如存在 new 关键字一样执行操作。如果派生类中的方法前面带有 new 关键字,则该方法被定义为独立于基类中的方法。如果派生类中的方法前面带有 override 关键字,则派生类的对象将调用该方法,而不调用基类方法。
可以从派生类中使用 base 关键字调用基类方法。override、virtual 和 new 关键字还可以用于属性、索引器和事件中。
1