1

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

我知道我可以将方法定义为抽象的并强制扩展器来实现它们。我不确定会员。此外,这是好的设计实践吗?

例子:

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();
}
4

1 回答 1

2

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

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

于 2013-04-17T22:53:01.980 回答