PHPオンライン学習

ステップ36 - 抽象クラスと抽象メソッド

やってみよう抽象クラスは抽象メソッドを定義したクラスを指します。抽象メソッドはメソッド名と引数のみを定義し実装を行わないメソッド定義です。抽象メソッドを定義するにはfunctionキーワードの前にabstractキーワードを指定します。抽象クラスはインターフェイスと同様にそれ自体をインスタンス化することはできず、クラスに継承し、そのクラスで抽象メソッドをオーバーライドして利用することを前提としています。抽象メソッドを含むクラスは必ず抽象クラスとして定義しなければなりません。インターフェイスと異なる点は、インターフェイスはメソッドの実装は不可であるのに対し、抽象クラスはメソッドの実装も可能な点です。構文:abstract class クラス名 { abstract function 関数名(引数) }
サンプルコード
//抽象クラス
abstract class Cat {
    const FAMILY = "ネコ";
    //抽象メソッド
    abstract function setName($newName);
    abstract function getName();
    //メソッドの実装もOK
    function getFamily() {
        return self::FAMILY;
    }
}

//Cat抽象クラスを継承したクラス
class CatBase extends Cat {
    //プロパティを定義
    private $name = "";
    //抽象メソッドをオーバーライド
    function setName($newName) {
        $this->name = $newName;
    }
    function getName() {
        return $this->name;
    }
}

//抽象クラスを実装したクラスをインスタンス化
$prionailurus = new CatBase();
//メソッドにアクセス
$prionailurus->setName("イリオモテヤマネコ");
echo "科:" . $prionailurus->getFamily() . "\n";
echo "名前:" . $prionailurus->getName();
表示行数:

消去

コードを保存

PHPバージョン8.2

PHPバージョン:

使い方 PHPのコードをWeb上で実行して実行結果を確認しながら学べる無料のPHPチュートリアルです。
コード欄にサンプルのPHPのコード(<?php?>は不要)を記述して、実行ボタンをクリックしてください。
PHPのソースコードをphpコマンドで実行するのと同じような感覚で実行結果が下のテキストエリアに表示されます。
また、関数の自動補完(2文字目を入力した時点で関数候補を表示)やコードエディタの背景色の変更も可能です。
PHPを学びたいけど実行環境がすぐに作れない、外出中で実行環境がない場合などに無料で気軽にPHPが学べるサイトです。

注意 無限ループや処理に時間がかかるコードを実行した場合、約1秒でタイムアウトしその時点の結果を出力します。
なるべく高い負荷のかかるコードの実行はご遠慮ください。

このページのトップに戻る