【发布时间】:2012-08-27 18:22:33
【问题描述】:
我注意到当我将方法定义为抽象时,子类的签名需要与之兼容。这剥夺了我在子类签名中使用类型检查的机会。
如果我将父方法定义为具有默认实现的具体方法,那么我可以覆盖父方法而不遵守其接口。
如果存在合适的默认实现,我倾向于使用第二种方法。但我是不是让自己陷入困境?
我觉得“抽象”的使用如此有限,所以我想知道我是否遗漏了什么......
注意 - 我看到有人问过与其他语言相关的类似问题,但没有那么多 PHP。
【问题讨论】:
-
其实尊重界面只是一个好习惯。 en.wikipedia.org/wiki/Liskov_substitution_principle