[PHP]PHP5から導入された抽象クラスについて

PHPでは、PHP5より抽象クラス(abstract class)が導入されました。
抽象クラスの特徴は下記のとおりです。

・抽象メソッド(abstruct function ...)を含むクラスは、抽象クラスとして宣言される必要があります。
 
・抽象クラスには非抽象メソッドを含めることができます。
 
・抽象メソッドはメソッド定義を持つ必要はありません。
 メソッドの実態は、継承先のクラスでメソッド定義を行います。



上記の振る舞いを確認できるサンプルコードは下記のとおりです。

<?php
 
// 抽象クラス
abstract class BaseClass {
    abstract function func1();    // 抽象メソッドは実態を持たない
 
    function func2() {
        echo "hello func2\n";     // abstract classには抽象メソッドでは無い、普通のメソッドも定義可能
    }
}
 
// 抽象クラスを継承した具象クラス
class DerivedClass extends BaseClass {
    function func1() {
        echo "hello func\n";
    }
}
 
$obj = new DerivedClass();
 
$obj->func1();
$obj->func2();




実行結果:

$ php test01.php
hello func
hello func2

関連記事

コメントを残す

メールアドレスが公開されることはありません。