読者です 読者をやめる 読者になる 読者になる

(PHP)親クラスのメソッドをオーバーライドする

php

継承した子クラスで、親クラスで定義されたメソッドの再定義をする。

class Parentclass {
    public function speak() {
        return "I'm Parent!";
    }
}        
class  Childclass extends Parentclass {
    public function speak(){
        return "I'm Child!" ;
    }
}

//出力確認
$speak = new Parentclass() ;
echo $speak -> speak() ; //I'm Parent!

$speak = new Childclass() ;
echo $speak -> speak() ; //I'm Child!  

子クラスで「parent::親クラスのメソッド名()」とすることで、親クラスのメソッドを呼び出すことが可能!これで親クラスで何か変更があってもそのまま子クラスにも反映される!親クラスの機能を「生かし」つつ、親クラスの機能に少し変更を加えられる!

継承されているクラスが増えると必要性が増す!
例えば、親クラスは、メソッドA・B・Cをよびだすメインのメソッドを実装していたとする。 この時、子クラスはメソッドBだけをオーバーライドして修正するだけで、 メインのメソッド全体を書き直さなくてもよい、というメリットがある。