「京东」程序员必会的设计模式七大原则之——里氏替换原则( 二 )
那么这样做有什么意义那 , 目的又是为了什么那?大家可以先思考一下 。
其实很简单 , 这样做最直接的一个目的就是防止我们将父类对象替换为子类对象后 , 造成方法调用混乱的问题 。
请看下面测试代码和其执行结果:
执行结果如下:
如果没有遵守上面的规则的话就会造成很大的麻烦 , 请看下列示例代码 。
测试结果如下:
确实发生问题了吧!我们的本意是希望对象替换后还执行原来的方法的 , 可结果却发生变化了 。 这样是不符合里氏替换原则的 。 所以我们要时刻牢记 , 子类方法的入参要比父类的入参范围更大 , 这样才不会造成不必要的错误 。
第三点当我们需要重写或者实现父类方法时 , 需要遵守下面这一点 。
重写或者实现父类方法的时候 , 方法的返回值可以被缩小 , 但是不能放大 。示例代码:
第四点
子类可以拥有自己独特的方法或属性 。这句话就更好理解了 , 它说明子类不光可以拥有从父类继承来的东西 , 也可以进行自我扩展 , 编写属于自己的东西 。
这一点相信大家都明白 , 我就不在编写示例代码了 。
总结通过上面的描述相信大家都对里氏替换原则有了一个基本的概念 , 其实它就是告诉我们在继承中需要注意什么问题和遵守什么规则 。
然而在实际开发中我们在很多时候还是会违背该原则的 , 虽然表面上没有什么特别大的问题 , 但是这样做会大大增加代码的出错率 。 我们编写代码时不光要考虑怎么实现该功能 , 程序的健壮性和后期的扩展以及移植都是需要考虑到的 。 只有这样做才可以使我们的程序更加优秀 。
好了今天的分享就到这里了 , 如果感觉“菜鸟”的文章写的还不错的 , 记得点赞加关注呦!你们的支持就是我坚持下去的动力 。
- 『程序员』装出新高度! 程序员用代码写招租广告只因不想与其它行业人士合租
- 数码实验室|刘强东影子时代:徐雷能否突破京东困局?
- #程序员#?8年经验程序员跳槽,2个月面试腾讯百度京东等70家公司,总结出4个共同点
- 程序员■Java程序员必知:HashMap进行put操作会不会引起死循
- 小城时光说资讯|为啥大家还是喜欢淘宝?原因让刘强东无奈,京东服务好、配送又快
- 程序员@同学在加拿大当程序员,对比国内程序员的待遇,差距这么大
- 大卫聊科技|中国首富原来是京东幕后大老板?低调过头了!,有多少人不知道
- #程序员#腾讯T4:结合我多年工作经验给程序员的几点忠告,别再埋头苦干了
- 爱鑫聊科技|价值2000亿!,刘强东赌对了!京东再造“小金猪”
- 资迅热闻|布局数字化采购市场,京东、阿里、苏宁三者尽管都是电商巨头出身