这不是一个问题,而是更多的最佳实践问题 - 我知道这些问题受到意见的影响,但我确信必须有针对此特定问题的标准惯例。
假设我有两个课程Account
和Associate
。
Account
包含几个对Associate
有用的方法,因此我自然会将Account
类扩展为Associate
。
然而,当我有两个同名的方法,例如,当然会出现问题,例如create()
。
到目前为止,为了抵消这种而不是扩展父类,我一直在将它实例化为子类__construct()
方法中的变量,然后通过它调用方法,例如$this->Account->create();
。
还有其他方式,例如使用扩展类方法的规范,同时在子类中仍然使用相同名称的方法?
任何答案都将非常感谢!
答案 0 :(得分:1)
帐户包含几个对Associate有用的方法,因此我自然会将Account类扩展为Associate。
不,这不是很自然,你滥用继承。或者你会说一个关联是帐户?如果拥有帐户,请使用合成。如果没有,但是帐户类具有对关联类有用的方法,它们可能根本不应该在帐户类中。将它们提取到一个或多个其他类,可由Account和Associate使用。
答案 1 :(得分:0)
如果您在子类方法中,将使用$this
调用子类方法。如果你想要父方法,你可以从子方法中调用parent::create();
。
但是,如果您绝对需要扩展Account类,这听起来是不必要的。如果“Account”类具有公共方法,那么您不需要扩展它,您可以在实例化类之后调用它们:
$account = new Account();
$account->create();
或者,如果它是公共静态方法:
$creation = Account::create();