这是在接受采访时向我询问的.
我回答他说,对于同一组输入,父母和孩子都应该产生相同的输出.如果孩子想要扩展父母的功能,它应该只对父母支持范围之外的新输入做.通过这种方式,孩子将保持其父母的合同.
我给了他一个例子,api可能正在使用像这样的父母
if(parent.getOutput(10) == 5){/*do something */}
Run Code Online (Sandbox Code Playgroud)
如果孩子在这里产生了不同的输出,那么那个孩子已经违反了它的父母所做的合同.
他对我的回答并不满意,并告诉我这是简单的重写,并不违反LSP.所以,我只是想确认,如果我理解这是正确的.