gpt4 book ai didi

PHP 抽象方法与默认方法

转载 作者:可可西里 更新时间:2023-11-01 13:43:21 24 4
gpt4 key购买 nike

我注意到,当我将方法定义为抽象方法时,子类的签名需要与其兼容。这剥夺了我在子类签名中使用类型检查的机会。

如果我将父方法定义为具有默认实现的具体方法,那么我可以在不遵守其接口(interface)的情况下覆盖父方法。

如果存在合适的默认实现,我倾向于使用第二种方法。但我是在给自己惹麻烦吗?

“抽象”的使用如此有限,这对我来说似乎很奇怪,所以我想知道我是否遗漏了什么......

注意 - 我看到有人问过与其他语言相关的类似问题,但没有那么多 PHP。

最佳答案

这是一个非常宽泛的问题,但简而言之:

如果您不尊重接口(interface) - 它会创建脆弱的设计,因为即使根据定义每个子级都应该支持所有祖先接口(interface) - 您会破坏它,定义不兼容的接口(interface)。

对此有一条很好的法律:http://en.wikipedia.org/wiki/Liskov_substitution_principle

此外,这通常是一个信号,表明您应该更喜欢委托(delegate)而不是继承。

关于PHP 抽象方法与默认方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com