ポリモーフィズムを実現するにはスーパークラスで定義されたメソッドをサブクラスで必ずオーバーライドするようにしなければいけません。
そのためにスーパークラスのメソッドを抽象メソッドとして定義します。抽象メソッドを定義すればサブクラスでオーバーライドしないとエラーになります。
抽象クラスや中身のない抽象メソッドを定義
抽象メソッドはあえて中身を書かないでメソッド名だけを指定しておきます。
抽象クラスと抽象メソッドは以下のように定義します。
abstract class クラス名 {
abstract アクセス修飾子 function メソッド名(パラメータ);
}
オーバーライドしてメソッドの中身を定義することを実装するといいます。
<?php
abstract class Super {
abstract protected function show();
}
?>
<?php
require_once 'Super.php';
class Sub extends Super {
public function show(){//showメソッドを実装
print 'サブクラスです。';
}
}
?>
コメント