我想知道如何强制子类实现给定的接口方法。
假设我有以下课程:
interface Serializable
{
public function __toString();
}
abstract class Tag // Any HTML or XML tag or whatever like <div>, <p>, <chucknorris>, etc
{
protected $attributes = array();
public function __get($memberName)
{
return $this->attributes[$member];
}
public function __set($memberName, $value)
{
$this->attributes[$memberName] = $value;
}
public function __construct() { }
public function __destruct() { }
}
我想强制“Tag”的任何子类实现“Serializable”接口。例如,如果 ia "Paragraph" 类,它看起来是这样的:
class Paragraph extends Tag implements View
{
public function __toString()
{
print '<p';
foreach($this->attributes as $attribute => $value)
print ' '.$attribute.'="'.$value.'"';
print '>';
// Displaying children if any (not handled in this code sample).
print '</p>';
}
}
我如何强制开发人员让他的“段落”类实现接口“Serializable”中的方法?
感谢您花时间阅读。