时间:2021-05-26
本文实例讲述了PHP面向对象之里氏替换原则。分享给大家供大家参考,具体如下:
里氏替换原则(Liskov Substitution Principle)
里氏替换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。里氏替换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。
使用里氏替换原则时需要注意,子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法。尽量把父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实现在父类中声明的方法,运行时,子类实例替换父类实例,我们可以很方便地扩展系统的功能,同时无须修改原有子类的代码,增加新的功能可以通过增加一个新的子类来实现。
通过一段代码了解
<?php//例子1class Bird{ protect function fly(){ }}//翠鸟class KingFisher extends Bird{}//鸵鸟class Ostrich extends Bird{ //鸵鸟不会飞啊}//例子2class A{ protect function add($a, $b){ return $a + $b; }} //重载class B extends A{ protected function add($a, $b){ return $a + $b + 100; }}?>里氏替换原则是对类继承的一种约束。对里氏替换原则有两种理解:
1. 不能随便去继承不合适的,有多余方法或者属性的类。(例子1)
2. 子类可以扩展父类的功能,但不能改变父类原有的功能。(例子2)
里氏替换原则包含一下几个隐藏含义:
① 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
② 子类中可以增加自己特有的方法。
③ 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
④ 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了PHP面向对象五大原则之里氏替换原则(LSP)。分享给大家供大家参考,具体如下:替换原则由MIT计算机科学实验室的Liskov女士在1987年的O
本文实例讲述了PHP面向对象五大原则之单一职责原则(SRP)。分享给大家供大家参考,具体如下:单一职责原则(SinglePesponsibilityPrinci
里氏替换原则,OCP作为OO的高层原则,主张使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改为动态结构,维持设计
1.单一职责原则每一个类负责一个职责(一个类只有一个方法)2.里氏替换原则所有引用基类的地方都能透明的使用其子类的对象。 问题来了: 比如原来 class
前言本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第3篇,里氏替换原则LSP(TheLiskovSubstitutionPrinci