次のような抽象ページクラスがあります。
abstract class Page {
public static function display() {
self::displayHeader();
self::displayContent();
self::displayFooter();
}
public static function displayContent() {
print "<p>some content</p>";
}
public static function displayHeader() {
include_once(kContent . "HeaderContent.class.php");
HeaderContent::display();
}
public static function displayFooter() {
include_once(kContent . "FooterContent.class.php");
FooterContent::display();
}
};
これからサブクラス化し、displayContent メソッドのみをオーバーライドしたいので、ヘッダーとフッターは自動的に表示されますが、.js ファイルなどの表示メソッドをオーバーライドするオプションがまだあります。
これで、次のような別のクラスができました。
class FooPage extends Page {
public static function displayContent() {
print "<p>Foo page</p>";
};
FooPage のdisplayContent
メソッドを呼び出す代わりに、スーパークラスのメソッドを呼び出すだけです。
なんで?私に何ができる?
編集
私はPHP 5.2.17を実行しています