LoginSignup
3
3

More than 5 years have passed since last update.

[PHP]クラスの継承

Posted at

今回のコード

<?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」とすると継承できる。

参照サイト

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3