gpt4 book ai didi

php - 在继承层次结构中重载构造函数是否意味着需要组合?

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:59 25 4
gpt4 key购买 nike

假设我有一个用户类,它具有名字、姓氏、地址等基本属性。从这个用户类,我有内部员工、顾问和客户的子类型,所有这些都需要额外的属性,因此更多的参数被传递给构造函数,这将违反 Liskov 替换原则。我怎样才能解决这个看似基本的问题?

最佳答案

您需要为所有新参数提供默认值,这样我们就可以在没有它们的情况下调用构造函数,并且不会得到任何新的异常。

如果不符合逻辑,不同的子类型确实需要不同的属性,根据LSP,我们不应该使用继承。

Traits例如,可以改用。

关于php - 在继承层次结构中重载构造函数是否意味着需要组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22516960/

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