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

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

確認環境
・PHP 7.1.8

目次

クラスを継承するサンプル

クラスを継承するサンプルです。
15行目は、Color2クラスがextendsを使用して2行目のColor1クラスを継承しています。
5行目と18行目のメソッド名(getName1)は同じ名前です。オーバーライドといいます。
→28行目は、Color2クラスの18行目のgetName1メソッドを実行します。
→オーバーライドの機能で処理内容を上書きしています。
29行目は、Color1クラスの10行目のメソッドを実行します。
→Color2クラスは、getName2メソッドを再実装しないで済んでいます。継承の利点です。

<?php
class Color1
{
	// nameを取得
	public function getName1()
	{
		return "赤";
	}

	public function getName2()
	{
		return "黄";
	}
}
class Color2 extends Color1
{
	// nameを取得
	public function getName1()
	{
		return "青";
	}
}
	//オブジェクトを作成
	$cr1 = new Color1();
	print $cr1->getName1(); //赤

	$cr2 = new Color2();
	print $cr2->getName1(); //青
	print $cr2->getName2(); //黄
?>

継承元のクラスのコンストラクタを呼ぶサンプル

継承元のクラスのコンストラクタを呼ぶサンプルです。
21行目でインスタンスが生成されるときに13行目のコンストラクタが呼ばれた後、15行目で5行目の継承元のコンストラクタを呼び出します。
継承元のクラスのコンストラクタを呼ぶときは、parent::を使用します。

<?php
class Color1
{
	// コンストラクタ
	public function __construct($name)
	{
		echo "指定した色は" . $name . "です。";
	}
}
class Color2 extends Color1
{
	// コンストラクタ
	public function __construct($name)
	{
		parent::__construct($name);
	}
}
	//オブジェクトを作成
	$cr1 = new Color1("赤"); //指定した色は赤です。

	$cr2 = new Color2("青"); //指定した色は青です。

?>

リンク

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

以下は、PHPマニュアルのコンストラクタのリンクです。
http://php.net/manual/ja/language.oop5.decon.php

関連の記事

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




△上に戻る