「PHPでオブジェクト指向入門13~スーパークラスのメソッドを継承し、さらにサブクラスで独自の処理も書きたい(継承)~」の編集履歴(バックアップ)一覧はこちら

PHPでオブジェクト指向入門13~スーパークラスのメソッドを継承し、さらにサブクラスで独自の処理も書きたい(継承)~」(2015/11/11 (水) 18:01:53) の最新版変更点

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

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

前回記事、[[PHPでオブジェクト指向入門12~サブクラスのメソッドはスーパークラスのメソッドを上書きできる(継承)]]では上書きできることを学びました。 ではスーパークラスも継承したいが、サブクラスで独自の処理を「追加して書いていきたい」という場合どうすればよいかを考えていきます。11月11日記事 ~ ~ 目次 #contents ~ ~ ---- ~ *parentキーワードというものを使っていく 基本構文は以下の通りです。 parent::メソッド名(引数,・・・) これで親クラスのメソッド名を引き継ぐことができます。 ~ ~ *コード Superclass.php <?php class Superclass{ protected $sports = "サッカー"; protected $name = "田中太郎"; public function Name(){ print "名前は{$this->name}です。"; } public function Sports(){ print "スーパークラスのスポーツは{$this->sports}が登録されています。"; } } ?> Subclass.php <?php require ("Superclass.php"); class Subclass extends Superclass{ /*public $sports = "ラグビー";*//*ここをコメントアウトしておかないとオーバーライドされてしまうため、コメントアウトをしておく。*/ public function Sports(){ parent::Sports(); print "ただ、ラグビーや空手の方がいいと思い始めています。";/*独自の処理*/ } } ?> result.php <?php require_once ("../class/Subclass.php"); $c = new Subclass(); $c->Name(); echo "<br>"; $c->Sports(); ?> ※前回のコードは返り値指定をしているため「なんでもいいよ.php」の方にechoを書いていましたが、サブクラスの方でprintに変えたため、前回のコードと少し違う部分があります。 ~ ~ *まとめ スーパークラスのメソッドは引き継ぎたいが、独自にも書いていきたいという場合はparentキーワードを使って呼び出し、さらに独自処理を記述していきましょう。 ~ ~ 以上
前回記事、[[PHPでオブジェクト指向入門12~サブクラスのメソッドはスーパークラスのメソッドを上書きできる(継承)]]では上書きできることを学びました。 ではスーパークラスも継承したいが、サブクラスで独自の処理を「追加して書いていきたい」という場合どうすればよいかを考えていきます。11月11日記事 ~ ~ 目次 #contents ~ ~ ---- ~ *parentキーワードというものを使っていく 基本構文は以下の通りです。 parent::メソッド名(引数,・・・) これで親クラスのメソッド名を引き継ぐことができます。 ~ ~ *コード Superclass.php <?php class Superclass{ protected $sports = "サッカー"; protected $name = "田中太郎"; public function Name(){ print "名前は{$this->name}です。"; } public function Sports(){ print "スーパークラスのスポーツは{$this->sports}が登録されています。"; } } ?> Subclass.php <?php require ("Superclass.php"); class Subclass extends Superclass{ /*public $sports = "ラグビー";*//*ここをコメントアウトしておかないとオーバーライドされてしまうため、コメントアウトをしておく。*/ public function Sports(){ parent::Sports(); print "ただ、ラグビーや空手の方がいいと思い始めています。";/*独自の処理*/ } } ?> なんでもいいよ.php <?php require_once ("../class/Subclass.php"); $c = new Subclass(); $c->Name(); echo "<br>"; $c->Sports(); ?> ※前回のコードは返り値指定をしているため「なんでもいいよ.php」の方にechoを書いていましたが、サブクラスの方でprintに変えたため、前回のコードと少し違う部分があります。 ~ ~ *まとめ スーパークラスのメソッドは引き継ぎたいが、独自にも書いていきたいという場合はparentキーワードを使って呼び出し、さらに独自処理を記述していきましょう。 ~ ~ 以上

表示オプション

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