liscov替换原则
子类型中的前置条件不能加强
指的就是函数的参数的给定范围不能变小
子类型中后置条件不能变弱
函数的返回值的给定范围不能变大
父类的不变量必须保存在子类中
compiler编译器决定的
子类型方法参数,逆变
子类型的方法参数可以变得更抽象(父类)
子类型方法返回值,协变
子类型的方法返回值可以变得更具体(子类)
子类型中的方法不应该抛出新的异常,除非这些异常本来就是父类抛出的异常
字面意思
欢迎关注公众号BBIT
让我们共同学习共同进步!
liscov替换原则相关推荐
- 里氏替换原则(Liskov Substitution Principle,LSP)
昨天图文介绍了软件设计的一个基本原则"开闭原则",而"开闭原则"的核心就是通过抽象把需求变化进行隔离,这种想法可以通过"里氏替换原则"进行保 ...
- 面向对象设计原则之三:里氏替换原则
里氏替换原则(Liskov Substitution Principle LSP) 里氏替换原则是面向对象设计的基本原则之一.任何基类可以出现的地方,子类一定可以出现.LSP是继承复用的基石,只有 ...
- 【设计模式系列】OO设计原则之LSP-Liskov替换原则
概要 什么是所谓的替换原则?开发中我们通常会通过继承实现一些子类来达到功能的扩展,比如假设我们有基类B,有个B类型的指针或引用作为某个函数的参数,这时我们创建了子类C继承于B,如果当把指向C类对象的指 ...
- 【设计模式】软件设计七大原则 ( 里氏替换原则 | 定义 | 定义扩展 | 引申 | 意义 | 优点 )
文章目录 一.里氏替换原则定义 二.里氏替换原则定义扩展 三.里氏替换原则引申意义 四.里氏替换原则意义 五.里氏替换原则优点 一.里氏替换原则定义 里氏替换原则定义 : 如果 对每一个 类型为 T1 ...
- 编码最佳实践——Liskov替换原则
Liskov替换原则(Liskov Substitution Principle)是一组用于创建继承层次结构的指导原则.按照Liskov替换原则创建的继承层次结构中,客户端代码能够放心的使用它的任意类 ...
- 【设计模式】里氏替换原则
里氏替换原则 OO(Object Oriented,面向对象程式设计)中的继承性的思考和说明 继承包含这样一层含义∶父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有 的子类必 ...
- java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...
为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...
- Laravel深入学习10 - 里氏替换原则
声明:本文并非博主原创,而是来自对<Laravel 4 From Apprentice to Artisan>阅读的翻译和理解,当然也不是原汁原味的翻译,能保证90%的原汁性,另外因为是理 ...
- 软件设计原则(三)里氏替换原则 -Liskov Substitution Principle
里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一. 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现. LSP是继承复用的基石,只 ...
- 北风设计模式课程---里氏替换原则(Liskov Substitution Principle)
北风设计模式课程---里氏替换原则(Liskov Substitution Principle) 一.总结 一句话总结: 当衍生类能够完全替代它们的基类时:(Liskov Substitution P ...
最新文章
- 这些好用的网站,看看你都收藏了没!
- openstack资源使用汇总_关于OpenStack的学习路线及相关资源汇总
- HashMap面试指南
- 推荐实践:结对Review
- 【lucene】lucene 分词 以及自定义分词器
- Boom 2 for Mac(音频助推器及均衡器) v1.6.7中文激活版
- 安卓反编译smali代码注入第三方广告
- 基于cesium和mars3d海洋三维管线信息系统开发完工总结
- Android 4.1新特性
- 天池比赛 Docker 解决无法读取测试集,提交成功
- 夺宝奇兵 (优先队列 + 贪心 + 暴力枚举)
- powerdns 系列之二 PowerDNS Authoritative Server
- python3 将科学计数法(用E表示的)转化为书写形式的科学计数法的数字
- linux格式化时设备或资源忙,Linux下使用fdisk命令和partprobe命令,在不重启系统的状况下新建分区并格式化...
- 数电基础知识Flash讲解
- 系统集成特一级资质标准
- 【UI界面开发】基本组件概述
- Urban Airship Server API - Java客户端实例
- SketchUp:SketchUp草图大师软件简介、安装、使用方法之详细攻略
- 聊聊定位-如何占领用户心智