PHP中的抽象成员是否可行?

时间:2013-04-17 22:49:53

标签: php oop properties

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

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

示例:

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 个答案:

答案 0 :(得分:2)

简而言之:不。在PHP中没有abstract属性这样的东西。

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