はじめに
- 継承について本やネットの情報から調べて理解したことをまとめました。
- もし、書いていることに何か間違いがある場合はご指摘いただけると嬉しいです。
継承とは
- すでに定義されているクラスを元に、新しく拡張したクラスを作る仕組みのこと。
- 継承元のクラスを「親クラス(スーパークラス)」。
- 継承してできる新しいクラスを「子クラス(サブクラス)」と呼びます。
継承で出来ること
- 親クラス(継承元)で定義したプロパティやメソッドを子クラス(継承してできる新しいクラス)で定義しなくても使うことができます。(親クラスから子クラスに引き継ぐイメージ)
継承で出来ないこと
- 子クラスで定義したメソッドやプロパティは親クラスから呼び出せない。
継承の書き方
親クラス(スーパークラス)
<?php
class 親クラス名
{
}
?>
子クラス(サブクラス)
<?php
class 子クラス名 extends 親クラス名
{
}
?>
コード例
- 継承の具体例を簡単な内容を元に紹介します。
親クラス
- 親クラスを定義します
product.php
<?php
class Product
{
private $name;
public function getName(){
return $this->name;
}
public function setName($name){
$this->name = $name;
}
}
?>
子クラス
- 子クラスを定義します
kitchenProduct.php
<?php
require_once("product.php");
class KitchenProduct extends Product{
private $price;
public function getPrice(){
return $this->price;
}
public function setPrice($price){
$this->price = $price;
}
}
$kitchen = new KitchenProduct();
$kitchen->setName("テーブル");
$kitchen->setPrice(3000);
echo $kitchen->getName() . "の金額は" . $kitchen->getPrice() . "円です";
?>
kitchenProduct.php(実行結果)
テーブルの金額は3000円です
解説
-
kitchenProduct.php
には定義されていないgetName()メソッド
やsetName()メソッド
を使うことができました。 - このように親クラスで定義したプロパティやメソッドを子クラスで定義しなくても使うことができます。
【補足】require_onceとは
- require_onceを使うと、別のphpファイルを読み込むことができます。
- 読み込んだファイルで定義されている内容を、記述したファイル内で使うことができます。
require_onceの書き方
require("ファイルパス");