黑马程序员技术交流社区

标题: 重载和重写怎么分? [打印本页]

作者: 弄啥呢    时间: 2016-7-7 22:43
标题: 重载和重写怎么分?
求大神解答
作者: ImKing    时间: 2016-7-7 22:51
本帖最后由 ImKing 于 2016-7-7 22:52 编辑

重载(overload):可以改变返回值类型,只看参数列表
(1) 方法重写(Override):子类中出现了和父类中方法声明一模一样的方法。与返回值类型有关,返回值是一致(或者是子父类)的
(2)方法重载:本类中出现的方法名一样,参数列表不同的方法。与返回值类型无关。
(3)子类对象调用方法的时候: 先找子类本身,再找父类。
根据定义,应该能区分出来了吧 {:2_36:}一个侧重的是参数列表,一个侧重的是返回值类型

作者: Ipluto    时间: 2016-7-7 22:53
一个老师说的,你可以看看:

方法重写的前提: 必须要存在继承的关系。

方法的重写: 子父类出了同名的函数,这个我们就称作为方法的重写。

什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。

方法重写要注意的事项:
        1.方法重写时, 方法名与形参列表必须一致。
        2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。
        3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。
        4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。
                        Exception(最坏)
                        RuntimeException(小坏)

方法的重载:在一个类中 存在两个或者两个 以上的同名函数,称作为方法重载。
方法重载的要求
        1. 函数名要一致。
        2. 形参列表不一致(形参的个数或形参 的类型不一致)
        3. 与返回值类型无关。

作者: 15623379627    时间: 2016-7-7 22:59
重载是一个类中的不同方法之间,方法名相同,参数列表不同,与返回值类型无关。重写是父类和子类之间,方法名相同,参数列表相同,返回值类型也相同
作者: wz529377283    时间: 2016-7-8 00:12
重载:1、一个类中 。  2、同名函数.  3、参数列表不同.  4、于返回值类型无关
重写:1、子父类中。   2、同名函数。3、参数列表相同。4、返回值类型要相同。




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