里氏代换原则里氏替换原则的简介

里氏代换原则  时间:2021-07-16  阅读:()

P6NK90ZFP和STTH512FP用什么代换

P6NK90ZFP坏了,可以用10N60代换   STTH512FP坏了,可以用FMLG16代换   里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。

里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。

LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

里氏代换原则是对“开-闭”原则的补充。

实现“开-闭”原则的关键步骤就是抽象化。

而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

如何理解里氏替换原则

展开全部 我简单的给你说一下吧。

首先,这是编译器的要求,如果不这么做,无法通过编译。

其次,面向对象的编程,其中继承有个大原则,任何子类的对象都可以当成父类的对象使用。

如有父类人类,可以使用一般的枪,有警察类,可以使用任何的枪。

class Person { void shoot(SimpleGun simpleGun); } class Police extends Person { void shoot(Gun gun); } 其中SimpleGun extends Gun。

这样的话任何警察类的对象都可以被当做人类来使用。

也就是说警察类既然会使用任何的枪,当然可以使用一般的枪。

Person person = new Police(); person.shoot(simpleGun); 而如果反过来,普通人可以使用任何抢,警察只能使用一般枪。

class Person { void shoot(Gun gun); } class Police extends Person { void shoot(SimpleGun simpleGun); } 这样的话就不合理了,既然警察是人类的一个子类,所以警察也是人类,既然是人类就应该能使用人类的方法,也就是使用任何的枪,可以根据上面的定义,反而警察类的能力还变小了。

所以有一个原则,子类的能力必须大于等于父类,即父类可以使用的方法,子类都可以使用。

返回值也是同样的道理。

假设一个父类方法返回一个List,子类返回一个ArrayList,这当然可以。

如果父类方法返回一个ArrayList,子类返回一个List,就说不通了。

这里子类返回值的能力是比父类小的。

还有抛出异常的情况。

任何子类方法可以声明抛出父类方法声明异常的子类。

而不能声明抛出父类没有声明的异常。

这一切都是为了,任何子类的对象都可以当做父类使用。

里氏替换原则的简介

里氏替换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。

里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。

LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

如此,问题产生了:“我们如何去度量继承关系的质量?” Liskov于1987年提出了一个关于继承的原则“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.”——“继承必须确保超类所拥有的性质在子类中仍然成立。

”也就是说,当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系。

该原则称为Liskov Substitution Principle——里氏替换原则。

林先生在上课时风趣地称之为“老鼠的儿子会打洞”。

^_^

LOCVPS新上韩国KVM,全场8折,2G内存套餐月付44元起_网络传真服务器

LOCVPS(全球云)发布了新上韩国机房KVM架构主机信息,提供流量和带宽方式,适用全场8折优惠码,优惠码最低2G内存套餐月付仅44元起。这是一家成立较早的国人VPS服务商,目前提供洛杉矶MC、洛杉矶C3、和香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡、德国和荷兰等机房VPS主机,基于KVM或者XEN架构。下面分别列出几款韩国机房KVM主机配置信息。韩国KVM流量型套餐:KR-Pl...

Megalayer(月599元)限时8月香港和美国大带宽服务器

第一、香港服务器机房这里我们可以看到有提供四个大带宽方案,是全向带宽和国际带宽,前者适合除了中国大陆地区的全网地区用户可以用,后者国际带宽适合欧美地区业务。如果我们是需要大陆地区速度CN2优化的,那就需要选择常规的优化带宽方案,参考这里。CPU内存硬盘带宽流量价格选择E3-12308GB240GB SSD50M全向带宽不限999元/月方案选择E3-12308GB240GB SSD100M国际带宽不...

LayerStack$10.04/月(可选中国香港、日本、新加坡和洛杉矶)高性能AMD EPYC (霄龙)云服务器,

LayerStack(成立于2017年),当前正在9折促销旗下的云服务器,LayerStack的云服务器采用第 3 代 AMD EPYC™ (霄龙) 处理器,DDR4内存和企业级 PCIe Gen 4 NVMe SSD。数据中心可选中国香港、日本、新加坡和洛杉矶!其中中国香港、日本和新加坡分为国际线路和CN2线路,如果选择CN2线路,价格每月要+3.2美元,付款支持paypal,支付宝,信用卡等!...

里氏代换原则为你推荐
stackoverflowerrorjava.lang.StackOverflowError 是什么意思0x80070005计划任务时出现错误代码80070005知识库管理系统知识库管理软件与档案管理软件有什么区别bindserviceonserviceconnected什么时候执行拓扑关系什么是矢量数据、栅格数据、拓扑关系?tvosairpods什么意思 airpods连接方式是怎样的arc是什么意思数学中的arctan是什么意思inode智能客户端win7如何使用校园网iNode智能客户端丁奇赛尔号丁奇技能表,带等级,刷什么学习力好?ruby语言Ruby是 什么意思
网站空间商 国外vps主机 主机点评 godaddy主机 表单样式 sub-process 日志分析软件 有奖调查 idc资讯 me空间社区 ntfs格式分区 qq对话框 网络空间租赁 河南移动网 cdn加速是什么 购买国外空间 彩虹云 空间登录首页 免费的asp空间 服务器维护 更多