「PHPでオブジェクト指向入門12~サブクラスのメソッドはスーパークラスのメソッドを上書きできる(継承)~」の編集履歴(バックアップ)一覧はこちら

PHPでオブジェクト指向入門12~サブクラスのメソッドはスーパークラスのメソッドを上書きできる(継承)~」(2015/11/11 (水) 17:32:41) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

継承でどんなことが他にできるのかを考えていきます。11月10日記事 ~ ~ 目次 #contents ~ ~ ---- ~ *メソッドのオーバーライド 同じメソッド名がスーパークラスとサブクラスにあった場合、サブクラスの方のメソッド名の方に適用される(上書きされる)ことが起きます。 これをメソッドのオーバーライドといいます。今回Sportsメソッドというものをスーパークラスとサブクラスに作り、上書きされる現象を確認したいと思います。 ~ ~ *コード **作る Superclass.php <?php class Superclass{ public $sports = "サッカー"; public $name = "田中太郎"; public function Name(){ return "名前は{$this->name}です。"; } public function Sports(){ return "スーパークラスのスポーツは{$this->sports}が登録されています。"; } } ?> Subclass.php <?php require ("Superclass.php"); class Subclass extends Superclass{ public $sports = "ラグビー"; public function Sports(){ return "サブクラスのスポーツは{$this->sports}が登録されています。。"; } } ?> なんでもいいよ.php <?php require_once ("../class/Subclass.php"); $c = new Subclass(); echo $c->Name(); echo "<br>"; echo $c->Sports(); ?> これでSubclassのラグビーのほうに上書きされていることを確認できると思います。 ~ ~ **Subclass.phpのSportsメソッドをコメントアウト Subclass.php <?php require ("Superclass.php"); class Subclass extends Superclass{ public $sports = "ラグビー"; /* public function Sports(){ return "サブクラスのスポーツは{$this->sports}が登録されています。"; }*/ } ?> これでSuperclassのサッカーの方に戻ることも確認できると思います。 ~ ~ *まとめ 名前のほうはスーパークラスのものを継承していますが、スポーツの方は上書きされています。 このようにメソッドを上書きできることをオーバーライドと言います。 ~ ~ 以上
継承でどんなことが他にできるのかを考えていきます。11月10日記事 ~ ~ 目次 #contents ~ ~ ---- ~ *メソッドのオーバーライド 同じメソッド名がスーパークラス(親クラス、基底クラスとも呼ばれる)とサブクラスにあった場合、サブクラスの方のメソッド名の方に適用される(上書きされる)ことが起きます。 これをメソッドのオーバーライドといいます。今回Sportsメソッドというものをスーパークラスとサブクラスに作り、上書きされる現象を確認したいと思います。 ~ ~ *コード **作る Superclass.php <?php class Superclass{ public $sports = "サッカー"; public $name = "田中太郎"; public function Name(){ return "名前は{$this->name}です。"; } public function Sports(){ return "スーパークラスのスポーツは{$this->sports}が登録されています。"; } } ?> Subclass.php <?php require ("Superclass.php"); class Subclass extends Superclass{ public $sports = "ラグビー"; public function Sports(){ return "サブクラスのスポーツは{$this->sports}が登録されています。。"; } } ?> なんでもいいよ.php <?php require_once ("../class/Subclass.php"); $c = new Subclass(); echo $c->Name(); echo "<br>"; echo $c->Sports(); ?> これでSubclassのラグビーのほうに上書きされていることを確認できると思います。 ~ ~ **Subclass.phpのSportsメソッドをコメントアウト Subclass.php <?php require ("Superclass.php"); class Subclass extends Superclass{ public $sports = "ラグビー"; /* public function Sports(){ return "サブクラスのスポーツは{$this->sports}が登録されています。"; }*/ } ?> これでSuperclassのサッカーの方に戻ることも確認できると思います。 ~ ~ *まとめ 名前のほうはスーパークラスのものを継承していますが、スポーツの方は上書きされています。 このようにメソッドを上書きできることをオーバーライドと言います。 ~ ~ 以上

表示オプション

横に並べて表示:
変化行の前後のみ表示: