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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为什么父类不抛异常,子类就不能抛异常

9 个回复

倒序浏览
因为继承必须满足 里氏代换原则 子类必须可以在任何场合替换父类。如果父类没有异常,而子类抛了,那就不能随便替换了。
里氏代换原则面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
回复 使用道具 举报 2 0
举个简单例子:
父类是动物,子类是狗,但是在创建子类对象时假设存在异常,将狗创建成一部手机,手机能是动物么?
解决方式是:将该异常内部解决,不抛出
回复 使用道具 举报
不太理解~~
回复 使用道具 举报
父类没有的异常,子类当然不能抛给父类,只能自己内部处理。
回复 使用道具 举报
66666666666666666666666666
回复 使用道具 举报
toypaoa 中级黑马 2015-10-18 12:22:17
7#
瞬间理解里氏变换法则。。。
回复 使用道具 举报
wome789 发表于 2015-10-17 12:33
因为继承必须满足 里氏代换原则 子类必须可以在任何场合替换父类。如果父类没有异常,而子类抛了,那就不能 ...

学习了。。
回复 使用道具 举报
ln0491 中级黑马 2015-10-18 12:52:26
9#
不错。。。。。。。。。。。。。。。
回复 使用道具 举报
看了下他们的回复,总结结果是。   父子关系 。 老子传承你的都是对的, 如果最后你做错了,那么都是你的错(异常)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马