黑马程序员技术交流社区
标题:
Override与重载有什么区别?
[打印本页]
作者:
陈凯
时间:
2013-3-4 11:47
标题:
Override与重载有什么区别?
Override与重载有什么区别?
作者:
林嘉健
时间:
2013-3-4 12:08
额。。这 2个没关系吧?
类里面同名的函数但参数列表不同 称做 重载
子类 override 父类的抽象方法或者虚方法 称做 重写。
作者:
廖新
时间:
2013-3-4 12:38
覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样。
重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。
作者:
肖明凯
时间:
2013-3-4 12:59
区别 方法重载 方法复写
英文单词 Overloading Override
概念 方法名称相同,参数的个数或者类型不同 方法名称相同,参数的个数和类型相同,方法的访问权限不能更严格
使用范围
发生在同一个类中
发生在继承关系中,是由子类进行复写
作者:
ykrh
时间:
2013-3-7 20:30
重载是方法的名称相同。参数个数或参数类型不同,进行多次重载以适应不同的需要。重载(overload)是面向过程的概念。
Override 是进行基类中函数的重写,是面向对象的概念
作者:
董华阳
时间:
2013-3-8 19:28
override修饰符,覆写一个基类中的方法...重载则是将将同名方法重新写过,达到同名的函数实现不同的功能.从而实现了一个方法有不同的版本.override与重载的本质区别是,加入了override的修饰符的方法,此方法始终只有一个被你使用的方法..这个区别就好像:
override就好像
你叫张三,你爸爸给修改了名字为李四...
重载就好像
你叫张三,但是别人也可以叫张三..
2、.net的错误处理机制是什么
错误的处理顺序:finally先,catch次之,最后退会try代码..取消此次操作.返回catch中的异常信息.当然,你也可以定制自己的错误处理机制...如果你的异常处理中包含finally块.则此finally无论是否发生异常始终会被执行...
3、C#中接口和类的异同
接口和类的区别是本质的..类是负责功能的实现,而接口则是负责功能的定义..项目中可以通过实现接口来规范类,操作类,抽象类的概念..从而达到高度的抽象..你也可以称接口为一个没有功能的类.
override是实现抽象方法,用于当基类不能为一个方法提供任何有的意义的实现的时候,相当于怎么说呢,如果一个基类中对一个方法的方法体不明确的时候,就可以定义他成为一个抽象方法,这样继承他的子类就被迫必须实现这个方法,否则就不能实例化,这是我的个人理解,重载不用说了吧,自己理解了就知道他们的区别在哪。
4、DataReader和DataSet的异同
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
作者:
孔健
时间:
2013-3-9 10:53
重载,方法重载:方法名相同,方法的参数个数、参数放置顺序或参数类型不同,这样的几个方法构成方法的重载。重载时关键字 Overloads 是可选的。注意:返回值类型的不同不能做为判断是否构成方法重载的依据!
override 方法提供从基类继承的成员的新实现。 由 override 声明重写的方法称为重写基方法。 重写的基方法必须与 override 方法具有相同的签名。重写的基方法必须是 virtual、abstract 或 override 的,不能重写非虚方法或静态方法。
作者:
天行
时间:
2013-3-9 16:50
1.Override关键字主要是提供派生类对基类方法的新实现,重写的基类方法必须和Override的方法具有相同的签名,此关键字不可以用于重写非虚方法和静态方法,与其配套使用的关键字是Virtual、abstract、Override。
2.Override方法还不可以修改Virtual方法的可访问性,Override方法和Virtual方法必须具有相同的访问修饰符,不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。
3. Virtual 关键字允许在派生类中重写这些对象,默认情况下,方法是非虚拟的,不可以重写非虚方法,virtual关键字不可以与static、abstract、private、override一起使用。Virtual关键字又是和override紧密不可分的,如果要实现Virtual方法就必须要使用override或new关键字(new和override产生的机理不同)。
4.Override主要用来对基类的方法和虚方法进行重写。
5.override叫覆盖重载是相同的方法名,但是返回类型或者参数个数或类型不同,叫做重载override覆盖的是父类的方法,例如父类有一个ToString()方法,当我们觉得它不能满足需求,我们会在自己的方法里面重写这个方法,但是别人在通过多态调用父类的时候我又希望它能按照我子类的ToString()方法去执行的,这个时候就用Override标示一下,这样无论是多态的调用还是直接调用,调用的都是我自己的ToString方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2