浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

PHPの抽象クラスとメソッドを定義するabstract

PHP: クラスの抽象化 – Manual
 abstractはPHPのクラス宣言時につけることでそのクラスを抽象クラスとして扱うことを示します。抽象クラスはインスタンスにできず、抽象メソッドを定義することが可能なクラスです。
 抽象という名が示す通り抽象クラスは子とも言える継承先、具体的なクラスを持つことが前提となっているクラスです。子のクラスの共通要素を抽出したクラスです。抽象クラスを用いることによって誤った実装を防ぎ、何を作るべきなのかをわかりやすくすることができます。
 抽象メソッドは実体を持たず、子に実装を任せるメソッド、インタフェース中のメソッドと同じ動きをします。これをもちいることによって次の様に、共通部分のほぼ固定の動作は実装、個々の要素は任せることを強制、というコードを記述できます。

abstract class AbstractClass
{
    // 拡張クラスにこのメソッドの定義を強制する
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

    // 共通メソッド
    public function printOut() {
        print $this->getValue() . "\n";
    }
    
    // プロパティ
    protected $hoge = 'hoge';
}

 taritと違って継承先で定義を新たにすることが容易であり、interfaceと違ってプロパティを持てます。ただしあくまでクラスであり、1つのクラスで継承できる元のクラスは1つだけ、抽象化のパターンにきっちり載せて使うべき機能です。

  • この記事いいね! (0)