PHPのおさらい3 オーバーライド
<!DOCTYPE html> <html lang="ja"> <body> <p><?php echo "classのオーバーライド" ?></p> </body> </html> <?php /*--------------------- class オーバーライド(子クラスで上書き) ---------------------*/ class Roster{ public $name; //変数(プロパティ) public function __construct($name){//コンストラクタ 引数はインスタンスを作る時に渡される名前 $this->name =$name; //(このクラスの中のプロパティに値をセットする) } //final public function hallow(){//子クラスのオーバーライドを禁止したい場合finalをつける public function hallow(){//関数(メソッド) echo $this->name."さん<br>"; } } //継承 class Subroster extends Roster{ public function greeting(){ echo "こんにちは"; } //オーバーライド 子クラスから親クラスのメソッドやプロパティを上書きする。 //override 親クラスと同じメソッド名にする public function hallow(){//関数(メソッド) echo "hallowから呼び出し⇒".$this->name."さん<br>"; } } $ichiro =new Roster('ichiro'); $jiro=new Roster('jiro'); $saburo=new Subroster('saburo'); echo $ichiro->name."<br>"; //名前を表示 クラスにアクセス $jiro->hallow();//名前を呼ぶ $saburo-> hallow();//オーバーライドすると上書きをしているので、この表示が変わる $saburo-> greeting();
///////////////////////////////
表示結果↓↓↓
classのオーバーライド
ichiro
jiroさん
hallowから呼び出し⇒saburoさん
こんにちは