⊗ppOpIhOPM 28 of 107 menu

PHPにおけるOOPでの親メソッドのオーバーライド

子クラスは、同じ名前のメソッドを作成することで親のメソッドをオーバーライドすることができます。 例を見てみましょう。以下の親クラスがあるとします:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

子クラスで同名のメソッドを作成してみましょう:

<?php class Student extends User { public function setName($name) { } } ?>

通常、親メソッドのオーバーライドは、そのメソッドの動作を変更したり追加したりするために行われます。 この例では、名前の長さのチェックを追加してみましょう:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

オーバーライドされたメソッドが確実に呼び出されることを確認しましょう。 まず、子クラスのオブジェクトを作成します:

<?php $student = new Student; ?>

次に、正しい値を渡してメソッドを呼び出します:

<?php $student->setName('john'); ?>

次に、不正な値を渡してメソッドを呼び出します。 結果として、例外がスローされるのがわかります:

<?php $student->setName(''); // エラー ?>

Userクラスで年齢のゲッターとセッターを作成してください。

Employeeクラスで年齢のセッターをオーバーライドし、年齢が18歳から65歳までの範囲であることをチェックするようにしてください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否