黑马程序员技术交流社区

标题: 重载和覆盖 [打印本页]

作者: 赵刘滨    时间: 2012-8-8 16:31
标题: 重载和覆盖
重载和覆盖的区别?
作者: 许庭洲    时间: 2012-8-8 16:57
1,覆盖,是是把基类的方法隐藏了,其实在子类中基类方法还存在,只是不可见而已,但是派生类中定义的时候前面要加上new;
2,重载没有new, 原基类的方法在子类中已经变成另一个方法了 。
作者: 彭书雄    时间: 2012-8-8 20:00
覆盖就是子类中有和父类相同的方法  当子类调用的时候 只能使用子类的方法  可以使用new方法调用父类的影藏方法

重载就是子类与父类相同的方法被实现不同的作用,实现了另外一种功能
作者: yb61776662    时间: 2012-8-8 21:49
重载:在同一类中。方法名相同,参数列表不同。

重写:在不同类中(子父类中)。
         方法声明相同(返回类型,方法名,参数列表)。

        重载可以改变返回类型。

重写需要注意:
        **子类方法的访问权限要大于等于父类方法的访问权限。
        **静态只能重写静态。一般不会出现。
作者: 肖攀    时间: 2012-8-8 22:49
重载,必然发生在一个类中,函数名相同,参数类型或者顺序不同构成重载,与返回类型无关
覆盖,在子类中写一个和基类一样名字(参数不同也算)的非虚函数,会让基类中的函数被隐藏,编译后会提示要求使用New关键字

作者: 董蒙蒙    时间: 2012-8-8 23:02
重载:overload,是方法的名称相同,参数或者参数类型不同,进行多次重载以适应不同的需求,重载是面向过程的概念
覆盖:override,是进行基类中函数的重写,覆盖是面向对象的概念




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2