黑马程序员技术交流社区

标题: 为什么父类不抛异常,子类就不能抛异常 [打印本页]

作者: android小学徒    时间: 2015-10-17 12:01
标题: 为什么父类不抛异常,子类就不能抛异常
为什么父类不抛异常,子类就不能抛异常
作者: wome789    时间: 2015-10-17 12:33
因为继承必须满足 里氏代换原则 子类必须可以在任何场合替换父类。如果父类没有异常,而子类抛了,那就不能随便替换了。
里氏代换原则面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
作者: 罗志辉    时间: 2015-10-17 12:39
举个简单例子:
父类是动物,子类是狗,但是在创建子类对象时假设存在异常,将狗创建成一部手机,手机能是动物么?
解决方式是:将该异常内部解决,不抛出
作者: 海狮    时间: 2015-10-17 22:37
不太理解~~
作者: 大地z灵    时间: 2015-10-18 09:53
父类没有的异常,子类当然不能抛给父类,只能自己内部处理。
作者: LLLLL    时间: 2015-10-18 11:14
66666666666666666666666666
作者: toypaoa    时间: 2015-10-18 12:22
瞬间理解里氏变换法则。。。
作者: itheima_casper    时间: 2015-10-18 12:28
wome789 发表于 2015-10-17 12:33
因为继承必须满足 里氏代换原则 子类必须可以在任何场合替换父类。如果父类没有异常,而子类抛了,那就不能 ...

学习了。。
作者: ln0491    时间: 2015-10-18 12:52
不错。。。。。。。。。。。。。。。
作者: 迷茫不堪的年纪    时间: 2015-10-19 00:38
看了下他们的回复,总结结果是。   父子关系 。 老子传承你的都是对的, 如果最后你做错了,那么都是你的错(异常)




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