【发布时间】:2018-08-16 18:33:42
【问题描述】:
这是在一次采访中问我的。
我回答他说,对于同一组输入,父母和孩子都应该产生相同的输出。如果孩子想扩展父母的功能,它应该只在父母支持的范围之外的新输入上做。这样,孩子将维持其父母签订的合同。
我给他举了一个例子,一个 api 可能正在使用这样的父级
if(parent.getOutput(10) == 5){/*do something */}
如果孩子在此处产生了不同的输出,则该孩子违反了其父母订立的合同。
他对我的回答不满意,并告诉我这是简单的覆盖,并不违反 LSP。 所以,我只是想确认一下,如果我理解正确。
【问题讨论】:
标签: java solid-principles liskov-substitution-principle