资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

面向对象6大原则之里氏替换原则

         这是我之前对于面向对象6大原则的学习笔记,其中对里氏替换原则的理解不够深刻,https://blog.51cto.com/zhangzhao/2396810。

创新互联专注于汤原网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供汤原营销型网站建设,汤原网站制作、汤原网页设计、汤原网站官网定制、微信小程序开发服务,打造汤原网络公司原创品牌,更为您提供汤原网站排名全网营销落地服务。

         根据百度百科的资料,里氏替换原则的定义为:Liskov于1987年提出了一个关于继承的原则“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“继承必须确保超类所拥有的性质在子类中仍然成立。”也就是说,当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。

         简单来说,就是当子类替换其基类的时候,程序的行为没有发生任何变化。

         这就要求:

         1. 子类可以实现父类的抽象方法,但是不能重写父类的非抽象方法。(这里需要区分下重写和重载的概念,重写是指函数名相同,函数的签名或者说参数类型相同;而重载是函数名相同,函数的签名或者说参数类型不同,面向对象语言的多态性会在运行时根据传入的实参类型自动匹配最适合的函数进行调用)

         2. 子类可以增加自己的特性。

         3. 子类的在重载父类方法时,方法的前置条件(形参)要比父类方法的输入参数更宽松。这是因为如果子类方法的参数范围更小的话,在运行调用函数的时候,可能就会先调用子类的重载函数,这是违反里氏替换原则的。

         4. 重载父类方法时输出结果(返回值)可以被缩小。


本文标题:面向对象6大原则之里氏替换原则
分享路径:http://cdkjz.cn/article/gohopp.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220