PHP クラスの継承とオーバーライドのサンプルです。
| 確認環境 ・PHP 7.1.8 |
目次
クラスを継承する

クラスを継承すると、継承先のクラスは継承元のクラスの機能を引き継ぎます。
継承先のクラスは、差分の機能を追加するだけでよくなります。
継承元のクラスのことを「基底クラス 」or 「親クラス 」or 「スーパークラス」といいます。
継承先のクラスのことを「派生クラス」 or「 子クラス」 or「 サブクラス」といいます。
クラスを継承するサンプル
2-8行目は基底クラスです。
9-15行目は派生クラスです。
9行目は、Color2クラスがextendsを使用して2行目のColor1クラスを継承しています。
18行目は、4行目の基底クラスのメソッドを実行します。
→Color2クラスは、基底クラスのメソッドを再実装しないで済んでいます。継承の利点です。
<?php
class Color1
{
public function getName1()
{
return "赤";
}
}
class Color2 extends Color1
{
public function getName2()
{
return "青";
}
}
$cr2 = new Color2();
print $cr2->getName1(); //赤
print $cr2->getName2(); //青
?>
オーバーライド
基底クラスで定義したメソッドを、派生クラスで同じメソッド名を記述して処理内容を上書きすることです。
オーバーライドのサンプル
2-8行目は基底クラスです。
9-15行目は派生クラスです。
基底クラスと派生クラスに同じメソッド名「getName1」があります。(4行目と11行目)
→オーバーライドです。
18行目は基底クラスと派生クラスの両方にある「getName1」メソッドを実行しています。実行結果は派生クラスのメソッドが実行されます。
<?php
class Color1
{
public function getName1()
{
return "赤";
}
}
class Color2 extends Color1
{
public function getName1()
{
return "青";
}
}
$cr2 = new Color2();
print $cr2->getName1(); //青
?>
リンク
以下は、PHPマニュアルの継承のリンクです。
http://php.net/manual/ja/language.oop5.inheritance.php
関連の記事