⊗ppOpFnCl 63 of 107 menu

PHPにおけるOOPの抽象クラス

あなたには User クラスがあり、 そこから Employee クラスと Student クラスが継承されるとします。

この場合、Employee クラスと Student クラスの オブジェクトは作成されますが、User クラスの オブジェクトは作成されません。 なぜなら、このクラスはその継承者の 共通のプロパティとメソッドをグループ化するためだけに 使用されるからです。

この場合、あなたや他のプログラマーが誤って User クラスのオブジェクトを作成しないよう、 強制的に禁止することができます。

このために、いわゆる 抽象 クラスが存在します。抽象クラスとは、 それらから継承することを目的とした クラスです。ただし、そのようなクラスのオブジェクトは 作成できません。

クラスを抽象として宣言するには、 その宣言時にキーワード abstract を記述します:

<?php abstract class User { } ?>

それでは、抽象クラス User の 実装を記述してみましょう。プライベート プロパティ name と、 それに対するゲッターとセッターを持たせます:

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

User クラスのオブジェクトを作成しようとすると エラーが発生します:

<?php $user = new User; // エラーを出力します ?>

しかし、私たちのクラスから継承することは 可能です。抽象クラス User を継承する Employee クラスを作成しましょう:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } } ?>

Employee クラスのオブジェクトを作成します - すべてが動作するはずです:

<?php $employee = new Employee; $employee->setName('john'); // 親、すなわちUserクラスのメソッド $employee->setSalary(1000); // 独自の、すなわちEmployeeクラスのメソッド echo $employee->getName(); // 'john' と表示されます echo $employee->getSalary(); // 1000 と表示されます ?>

幾何学的図形を表す抽象クラス Figure を 作成してください。 そこから、円、長方形、正方形のためのクラスを 継承させてください。

日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否