我想开发一个抽象类,将其扩展以适合自定义要求。 大多数方法将在此基类中完全实现。 但是,它将严重依赖于子类应定义的成员中设置的值。 我之所以说“抽象”类,是因为我想强迫该类的扩展程序为成员定义值。 这可能吗?

我知道我可以定义抽象的方法并强制扩展程序实现这些方法。 我不确定成员。 此外,这是好的设计实践吗?

例:

abstract class foo_bar
{
    // I want child class to define these
    private $member1 = 0;
    private $member2 = 0;
    private $member3 = 0;

    // Child class and instances can access this
    public function foo()
    {
        return 'foo';
    }

    // Child class must implement this
    abstract function bar();
}

===============>>#1 票数:2 已采纳

简而言之:不。PHP中没有诸如abstract属性之类的东西。

您也可以只在抽象类本身中将这些属性声明为protected ,以便子代继承它们。 即使您将它们声明为abstract ,也不能保证子级使用有用的值来实现它们,因此其效果大致相同。

  ask by snoopy76 translate from so

未解决问题?本站智能推荐: