1

我有一个类似的结构:

家长班

abstract class parentActions extends sfActions
{
   // overloaded from sfActions
   public function preExecute()
   {
     // do some stuff before every action
   }

}

儿童班

class someActions extends parentActions
{
  public function preExecute()
  {
     // do some more stuff
     parent::preExecute();
  }
}

现在我的问题是:如何强制调用parent::preExecute()覆盖它的子方法?

在我还不知道的 symfony 中是否有其他方法(另一种不会重载的方法或其他方法)?

需要调用父方法,否则功能会被破坏!

4

3 回答 3

1

没有办法强制执行。决定是否调用父方法是子类的唯一责任。

于 2012-10-17T07:46:48.783 回答
1

这正是继承应该做的;孩子在保留前后条件的同时专门化一种方法。这使得用子类替换父类成为可能。

也许您可以在父类中声明在子类中实现的空钩子并添加finalpreExecute()声明中以防止意外覆盖。

于 2012-10-17T07:51:30.897 回答
0

放在抽象类中__constructor()

于 2015-04-09T08:27:49.567 回答