PHPのおさらい6 抽象クラス abstract
<!DOCTYPE html> <html lang="ja"> <body> <p><?php echo "抽象クラス abstract" ?></p> </body> </html> <?php /*--------------------- abstract 継承させる事を前提にしたクラス それ自身は、インストラクトする事は出来ない。 抽象クラスで共通のメソッドやプロパティを定義しておけば 子クラスの実装をシンプルにしたり 子クラスの実装もれを防ぐ仕組み abstractはextendsして初めて使える。 「抽象メソッド」を含むクラスは必然的に「抽象クラス」となり、 必ずクラスを「abstract修飾子」で宣言しなければいけない。 ---------------------*/ abstract class Roster{ public $name;//通常と同じようにプロパティを実装 //抽象メソッドにして、継承クラスで必ず実装してくだというルールを記述 //実装の中身を書く必要は無い。 abstract public function hallow($name); function greeting(){ echo "初めまして"; } } class Subroster extends Roster{//抽象メソッドも継承。実装しないとエラーになる。implement //メソッド名や引数の数は同じにしなければならない。 public function hallow($name){ echo $name."さん<br>"; } } $subobj =new Subroster; $subobj->hallow("一郎"); $subobj->greeting(); // ←abstract class で定義したメンバも使える
/////////////////////////
表示結果↓↓↓
抽象クラス abstract
一郎さん
初めまして