サブクラスに特定のインターフェイスメソッドを実装させる方法を考えています。
次のクラスがあるとしましょう:
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>';
}
}
開発者に「Paragraph」クラスにインターフェース「Serializable」からのメソッドを実装させるにはどうすればよいですか?
読んでいただきありがとうございます。