老师,关于里氏替换原则的问题

来源:3-9 里氏替换原则讲解

张婧仪

2025-09-19

图片描述
老师,你在含义1说不能覆盖父类非抽象方法,在含义4说可以重写,这是不是矛盾呀?
还有一个问题:含义3中,你说子类的方法重载父类方法,可是重载不是指同一类中的方法吗?

写回答

1回答

geelylucky

2025-09-19

同学你好,第一个问题中,含义4是说可以重写抽象方法哈,含义1中说的是不能覆盖非抽象方法;

第二个问题:

为什么子类方法的前置条件必须更宽松?

核心思想:子类必须能够完全替换掉其父类,而不破坏任何依赖于父类的现有代码。

如果子类的前置条件比父类更严格,就意味着父类能接受的一些参数,子类反而不能接受。这直接违反了“替换”原则,因为客户端代码在使用父类时建立起来的约定,被子类破坏了。


0
0

Java设计模式精讲-Debug方式+内存分析

系统学习设计原则,设计模式,锤炼编码内功,赢取高薪Offer

3439 学习 · 409 问题

查看课程