我想开发一个抽象类来扩展以适应自定义要求。大多数方法将在此基类中完全实现。但是,它将严重依赖于成员中设置的值,子类应该定义这些值。我说“抽象”类的原因是我想强制类的扩展器为成员定义值。这可能吗?
我知道我可以将方法定义为抽象方法,并强制扩展程序实现这些方法。我不确定会员。此外,这是一个很好的设计实践吗?
示例:
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();
}
答案 0 :(得分:2)
简而言之:不。在PHP中没有abstract
属性这样的东西。
您也可以在抽象类本身中将这些属性声明为protected
,以便子类继承它们。即使你声明它们abstract
,也不能保证孩子用有用的值来实现它们,所以它具有大致相同的效果。