小编yog*_*ogi的帖子

这是对Liskov替代原则的正确理解吗?

这是在接受采访时向我询问的.

我回答他说,对于同一组输入,父母和孩子都应该产生相同的输出.如果孩子想要扩展父母的功能,它应该只对父母支持范围之外的新输入做.通过这种方式,孩子将保持其父母的合同.

我给了他一个例子,api可能正在使用像这样的父母

if(parent.getOutput(10) == 5){/*do something */}
Run Code Online (Sandbox Code Playgroud)

如果孩子在这里产生了不同的输出,那么那个孩子已经违反了它的父母所做的合同.

他对我的回答并不满意,并告诉我这是简单的重写,并不违反LSP.所以,我只是想确认,如果我理解这是正确的.

java liskov-substitution-principle solid-principles

1
推荐指数
1
解决办法
1157
查看次数