PHP クラスの継承のサンプル

PHP クラスの継承のサンプルです。

確認環境
・PHP 7.1.8

目次

クラスの継承のイメージ

クラスがクラスを継承すると、継承先のクラスは継承元のクラスの機能を引き継ぎます。
継承先のクラスは、差分の機能を追加するだけでよくなります。

継承元のクラスのことを「基底クラス 」or 「親クラス 」or 「スーパークラス」といいます。
継承先のクラスのことを「派生クラス」 or「 子クラス」 or「 サブクラス」といいます。

 

継承のサンプル

クラスの継承のサンプルです。

<?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~7行目は親クラスです。
8~13行目は子クラスです。
8行目は、Color2クラスがextendsを使用して2行目のColor1クラスを継承しています。
15行目は、4行目の親クラスのメソッドを実行します。
→子クラスは、親クラスのメソッドを再実装しないで済んでいます。継承の利点です。

 

親クラスを指定する(parent::)

親クラスを指定するサンプルです。
parent::を指定します。

<?php
class Color1
{
	public function getName1(){
		return "赤";
	}
}
class Color2 extends Color1
{
	public function getName2(){
		return(parent::getName1());
	}
}
$cr2 = new Color2();
print $cr2->getName2(); //青
?>

8行目のクラスは、2行目のクラスを継承しています。
11行目は、parent::を使用して4行目の親クラスのメソッドを指定しています。

 

クラス継承を禁止する(final)

final class クラス名

クラス継承を禁止するサンプルです。
finalを使用します。

<?php
final class Color1
{
	public function getName1(){
		return "赤";
	}
}
//class Color2 extends Color1
//{
//	public function getName2(){
//		return(parent::getName1());
//	}
//}
$cr2 = new Color2();
print $cr2->getName2(); //青
?>

2行目は、finalがついています。
8行目のクラスは、2行目のクラスを継承できません。エラーになります。

リンク

以下は、PHPマニュアルの継承のリンクです。
http://php.net/manual/ja/language.oop5.inheritance.php

関連の記事

PHP クラスのサンプル
PHP コンストラクタのサンプル

△上に戻る