A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于潇 中级黑马   /  2012-4-15 09:16  /  3664 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一直搞不明白它们三者之间是不是一回事儿,到底有什么区别,在线等答案……谢谢

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1 额,你的头像真给力,哈哈~

查看全部评分

6 个回复

倒序浏览
重写:父类与子类之间。方法名相同,参数相同。
重载:同一类中,方法名相同,参数不同。
复写是重写的令一种叫法。
回复 使用道具 举报
他们三个是一样的只是不同的叫法而已,其中重写的一些知识点如下:
override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。
重写(覆盖)的规则:
   1、重写方法的参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.
   2、重写方法的访问修饰符一定要大于被重写方法的访问修饰符(public>protected>default>private)。
   3、重写的方法的返回值必须和被重写的方法的返回一致;
   4、重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;
   5、被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行重写。
   6、静态方法不能被重写为非静态的方法(会编译出错)

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
复写重写覆盖都是一个概念,只不过叫法不同罢了,都是在java面向对象继承中的概念,发生覆盖是为了更新父类功能的内容,而不修改功能本身,
覆盖发生的必须条件和规则。。。呃楼上的很强悍,我就不多说了
我说一下重载和覆盖吧,重载是函数名相同,参数列表不同,重写是父类中和子类中存在函数名和参数列表完全相同的函数,
但是注意修饰符可以不同,但是一定要保证子类中的函数覆盖父类中函数的时候,子类函数的访问权限大于等于要覆盖的父类中的函数,
还要注意,私有化private比较特殊,当父类子类中两个函数都有该修饰符修饰,是不能够覆盖的,因为private修饰的函数或变量,只在当前类中有效,

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报


重载:只看同名函数的参数列表。
重载不需要继承的。

你说的那三个应该都归纳与重写 override
重写:子父类方法要一模一样。必须有继承关系的
重写是实现多态的途径。 比如B继承了A   A里面有一个叫aa的虚方法,B重写了它   如果你声明了A a= new B()那么在你调a.aa()的时候其实是调用了B类里面的aa方法

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
复写、覆盖、重写。这三个词是一个意思。都是重写父类的方法的意思。
回复 使用道具 举报
于潇 中级黑马 2012-4-15 12:36:22
7#
多谢各位好心人
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马