LoginSignup
5
11

More than 3 years have passed since last update.

継承について解説!

Last updated at Posted at 2019-05-03

はじめに

  • 継承について本やネットの情報から調べて理解したことをまとめました。
  • もし、書いていることに何か間違いがある場合はご指摘いただけると嬉しいです。

継承とは

  • すでに定義されているクラスを元に、新しく拡張したクラスを作る仕組みのこと。
  • 継承元のクラスを「親クラス(スーパークラス)」。
  • 継承してできる新しいクラスを「子クラス(サブクラス)」と呼びます。

継承で出来ること

  • 親クラス(継承元)で定義したプロパティやメソッドを子クラス(継承してできる新しいクラス)で定義しなくても使うことができます。(親クラスから子クラスに引き継ぐイメージ)

継承で出来ないこと

  • 子クラスで定義したメソッドやプロパティは親クラスから呼び出せない。

継承の書き方

親クラス(スーパークラス)
<?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("ファイルパス");
5
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
11