0
0

継承

Posted at

はじめに

継承についてまとめる

継承とは

基になるクラスの機能(メソッド)を引き継ぎながら、新たな機能を追加したり、元の一部だけを修正したりする仕組み。

参考コード

BusinessPersonクラスがPersonクラスを継承している。

Person.php
class Person
{
    public $firstName;
    public $lastName;

    public function __construct($firstName, $lastName)
    {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public function show()
    {
        print "<p>私の名前は{$this->lastName}{$this->firstName}です。</p>";
    }
}
BusinessPerson.php
require_once 'Person.php';

class BusinessPerson extends Person
{
    public function work(): void
    {
        print "<p>{$this->lastName}{$this->firstName}は働いています。</p>";
    }
}
extends.php
require_once 'BusinessPerson.php';

$bp = new BusinessPerson('鈴木', '太郎');
$bp->work(); // 鈴木太郎は働いています
$bp->show(); // 私の名前は鈴木太郎です

BusinessPersonクラスで定義されたworkメソッドだけでなく、親クラスであるPersonクラスで定義されたコンストラクターやshowメソッドをあたかもBusinessPersonクラスのメンバーであるかのように呼び出すことができている。

どんなときに継承を使うべきか

親クラスと子クラスにis-aの関係が成り立つとき。
→「SubClass is a SuperClass」であるとき

参考コードにおける、class BusinessPerson extends Personというコードは、
BusinessPerson(ビジネスパーソン)はPerson(人間)」であるため、継承は使い道として適切。

間違った例を挙げると、class BusinessPerson extends Foodというコードは
BusinessPerson(ビジネスパーソン)はFood(食べ物)」ではないことから、使い道として適切ではない。

0
0
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
0
0