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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jojo 中级黑马   /  2015-1-10 14:19  /  1922 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 jojo 于 2015-1-10 15:12 编辑

说到方法重写的“两同两小一大”,你真的懂为什么吗?
两同是指方法名和参数列表,这个很好理解,是重写的必要条件。
那为什么子类方法的返回值和抛出的异常,不能比父类的小呢?你真的能很好的解释缘由吗?
还有为什么子类方法的访问权限为什么要比父类大?你又真的懂吗?

如果,你能真正想明白,就说明,你真的懂重写和多态了。对,就是多态,重写和多态是密不可分的,各位朋友都好好想想吧。
PS:给点思路,如果不这么设计,多态调用时会出现什么问题,往这反面想,你也许就真的得到答案了。

8 个回复

倒序浏览
“重载和多态是密不可分的”愿听听怎么解释的
回复 使用道具 举报
楼主说的是重载吗??。。。。。。。。。。。。。。。还是重写啊。。。
回复 使用道具 举报
这有什么好想的,听完不就知道了吗
回复 使用道具 举报
为什么子类方法的返回值和抛出的异常,不能比父类的小呢?没理解,不是子类异常不能超过父类,如果出现新的异常只能内部处理么?
回复 使用道具 举报
楼主很厉害,,,我喜欢这样的人,爱思考,不拘泥形式...
回复 使用道具 举报
重写在基础视频里要求2个函数完全一样,这是简化版的做法反正不会出错,lz挖的深了一些。。

子类重写方法的返回值必须等于父类方法的返回值或者比父类方法的返回值小,意思是说  子类重写方法的返回值类型必须为父类方法的返回值类型 或父类方法返回值类型的子类类型

子类重写方法抛出的异常类型 只能是父类方法抛出的类型  或父类方法抛出的异常类型的子类类型

子类重写方法的可见性 必须大于或等于父类方法的可见性,比如 父类方法是用 protected 修饰的 ,子类就只能用 protected 或 public 修饰 而不能用private 修饰
回复 使用道具 举报
完全看不懂啊
回复 使用道具 举报 1 0
:lol不知道楼主是想说重写还是重载!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马