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

里氏代换原则  时间: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——里氏替换原则。

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

^_^

AkkoCloud(60元/月 ),英国伦敦CN2 1核 768 MB 内存 10 GB SSD 硬盘 600GB 流量 英国伦敦CN2 1核  1.5G  300Mbps

官方网站:https://www.akkocloud.com/AkkoCloud新品英国伦敦CN2 GIA已上线三网回程CN2 GIA 国内速度优秀.电信去程CN2 GIALooking Glass:http://lonlg.akkocloud.com/Speedtest:http://lonlg.akkocloud.com/speedtest/新品上线刚好碰上国庆节 特此放上国庆专属九折循环优惠...

织梦DEDECMS即将授权收费和维权模式 站长应对的几个方法

这两天在站长群里看到不少有使用DEDECMS织梦程序的朋友比较着急,因为前两天有看到来自DEDECMS,我们熟悉的织梦程序官方发布的公告,将会在10月25日开始全面商业用途的使用DEDECMS内容管理程序的会采用授权收费模式,如果我们有在个人或者企业商业用途的,需要联系且得到授权才可以使用,否则后面会通过维权的方式。对于这个事情,我们可能有些站长经历过,比如字体、图片的版权。以及有一些国内的CMS...

10gbiz:香港/洛杉矶CN2直连线路VPS四折优惠,直连香港/香港/洛杉矶CN2四折

10gbiz怎么样?10gbiz在本站也多次分享过,是一家成立于2020的国人主机商家,主要销售VPS和独立服务器,机房目前有中国香港和美国洛杉矶、硅谷等地,线路都非常不错,香港为三网直连,电信走CN2,洛杉矶线路为三网回程CN2 GIA,10gbiz商家七月连续推出各种优惠活动,除了延续之前的VPS产品4折优惠,目前增加了美国硅谷独立服务器首月半价的活动,有需要的朋友可以看看。10gbiz优惠码...

里氏代换原则为你推荐
strstrc++里strstr是啥意思???知识库管理系统如何加强知识库的管理电子日历我想做个项目 如何在电子日历中进行时间的选择李昊天铠甲勇士刑天中人物资料丁奇海贼王里“D”的意思是什么?弹幕播放器看过的剧有一个弹幕出来的是什么播放器layoutsubviews如何修改TableViewCell中的ImageView的Frame和大小社工库网站怎么找社工库?菜霸现实中遇到地痞流氓该怎么办基础设施即服务城市基础设施、公共服务设施、市政设施有什么区别?
com域名价格 美国加州vps 中国万网域名 burstnet 台湾服务器 国外idc 美国便宜货网站 win8升级win10正式版 lighttpd 私有云存储 eq2 国内php空间 京东商城双十一活动 dd444 天互数据 有益网络 服务器干什么用的 河南移动m值兑换 ftp免费空间 国外ip加速器 更多