Posted at

[PHP]クラスの継承


今回のコード



<?php

class User { //こっちが親クラス
public $name; //プロパティ

public function __construct($name) { //コンストラクター
$this->name = $name;
}
public function sayHi() { //メソッド
echo "hi, $this->name!(こっちはUserクラスから)<br>";
}
}

class AdminUser extends User { //こっちは子クラス
// プロパティやコンストラクターはオーバーライド
public function sayHi() {
echo "hi, $this->name!(こっちはAdminUserクラスから)";
}
}

$user1 = new User("太郎"); //親クラスからインスタンス化
$user2 = new AdminUser("次郎"); //子クラスからインスタンス化

$user1->sayHi();
$user2->sayHi();



実行結果

hi, 太郎!(こっちはUserクラスから)

hi, 次郎!(こっちはAdminUserクラスから)


親クラスと子クラス

クラスの継承の場合、元になる方のクラスを親、継承する方のクラスを子と呼ぶ。

今回のコードの場合、Userクラスの方が「親」、AdminUserクラスの方が「子」にあたる。


子クラスの書き方


上記の例より抜粋

class AdminUser extends User {

}

AdminUserというクラス名なので、普通通り「class AdminUser」と記述。

その後に、Userクラスを引き継ぐという意味で「extends User」とすると継承できる。

参照サイト