这篇文章主要介绍了PHP面向对象之里氏替换原则,结合实例形式分析了php里氏替换原则的概念、原理、简单使用方法及相关注意事项,需要的朋友可以参考下

本文实例讲述了PHP面向对象之里氏替换原则。分享给大家供大家参考,具体如下:

里氏替换原则(Liskov Substitution Principle)

里氏替换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。里氏替换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

使用里氏替换原则时需要注意,子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法。尽量把父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实现在父类中声明的方法,运行时,子类实例替换父类实例,我们可以很方便地扩展系统的功能,同时无须修改原有子类的代码,增加新的功能可以通过增加一个新的子类来实现。

通过一段代码了解

<?php
//例子1
class Bird{
  protect function fly(){
  }
}
//翠鸟
class KingFisher extends Bird{
}
//鸵鸟
class Ostrich extends Bird{
  //鸵鸟不会飞啊
}
//例子2
class 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程序设计有所帮助。

最新资讯
马云:融资1亿美元都不好意思 风险投资退潮是好事

马云:融资1亿美元都不

马云在2018世界VR产业大会上讲,阿里巴巴创业时融资500
华为明年将在印度生产手机 三年内开设1000家门店

华为明年将在印度生产

全球第二大手机制造商华为将从明年开始在印度生产手机
深圳冻结P2P网贷股权“反转” 一日后即撤下

深圳冻结P2P网贷股权

对于此前多家深圳P2P网贷平台股权冻结一事,10月19日,这
直击|哈啰正式启动打车业务 全国81城接入嘀嗒出租车

直击|哈啰正式启动打

哈啰出行今日宣布正式接入嘀嗒出行,在北京、杭州、武汉
哈啰出行回应收购ofo传闻:对方董事会曾邀请与其合并

哈啰出行回应收购ofo

不过哈啰方面对此回应称,ofo董事会曾邀请并提议哈啰与
亚马逊将在英国曼彻斯特成立新研发中心 2019年运营

亚马逊将在英国曼彻斯

据国外媒体报道,电子商务巨头亚马逊宣布,计划在曼彻斯特
最新文章
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法

Laravel框架使用monol

这篇文章主要介绍了Laravel框架使用monolog_mysql实现
PHP实现类似题库抽题效果

PHP实现类似题库抽题

这篇文章主要介绍了PHP实现类似题库抽题效果,通过一个
PHP实现websocket通信的方法示例

PHP实现websocket通信

这篇文章主要介绍了PHP实现websocket通信的方法,结合
PHP使用SMTP邮件服务器发送邮件示例

PHP使用SMTP邮件服务

这篇文章主要介绍了PHP使用SMTP邮件服务器发送邮件,结
Django中通过定时任务触发页面静态化的处理方式

Django中通过定时任务

Django是一个开放源代码的Web应用框架,由Python写成。
php正确输出json数据的实例讲解

php正确输出json数据

今天小编就为大家分享一篇php正确输出json数据的实例