かべぎわブログ

ブログです

継承 オーバーライド

継承を用いて子クラスを定義するときは class 子クラス extends 親クラス とする。

<?php
class Blog {
}

class KabegiwaBlog extends Blog {
}

子クラスは親クラスのプロパティ,メソッドを引き継いでいるので親クラスで定義されているメソッドを呼び出せる。

<?php
class Blog {
  public function __construct() {
    echo 'blog desu.';
  }
}

class KabegiwaBlog extends Blog {
}

$article = new KabegiwaBlog();  // 親クラスのコンストラクタが実行される

子クラスには独自のメソッドを定義することができる。子クラスにメソッドが定義されている場合にはそのメソッドが呼び出される。
定義されていない場合には親クラスのメソッドが呼び出される。

また、親クラスと同じ名前のメソッドを子クラスで定義するとメソッドの中身を上書きすることができる。
これをオーバーライドという。

<?php
class Blog {
  public function __construct() {
    echo 'blog desu.';
  }
}

class KabegiwaBlog extends Blog {
  public function __construct() {
    echo 'kabegiwablog desu.';
  }
}

$article = new KabegiwaBlog();  // 子クラスのコンストラクタが実行される