【PHP】关于覆写
,子クラスで親クラスのメソッドを上書きすることはオーバーライドと呼ばれます。
// 親クラス
class Goku {
public function skill($name, $damage){
print "名前 = {$name} : ダメージ = {$damage}". '<br>';
}
}
// 子クラス
class Gohan extends Goku {
public function skill($name, $damage){
print "悟飯の必殺技!名前は、{$name}!なんと{$damage}ダメージも敵に与える事ができるんだ!";
}
}
我决定重写子类的skill()方法。在父类中,只显示简洁的信息,这是一种冷漠的方法,但我决定将其重新定义为子类的方法,显示类似于《滚动漫画》的描述信息,这是一种热情的方法。
现在执行该方法。
$dragonball = new Goku();
$dragonball->skill('かめはめ波', '500');
$dragonballZ = new Gohan();
$dragonballZ->skill('かめはめ波', '500');
于是结果是
名前 = かめはめ波 : ダメージ = 500
悟飯の必殺技!名前は、かめはめ波!なんと500ダメージも敵に与える事ができるんだ!
这里是一个示例,第一行是父类的skill()方法,下面的一行是子类的skill()方法。它们被覆盖了。
重写的优点是,通过创建各种子类并准备重写的方法,可以应对各种情况。
但是如果进行覆盖(override)的话,就会导致存在多个同名的方法。这可能会让人感到困惑,当尝试调用目标方法时可能会调用错误的方法。不过不用担心。特别的处理是不必要的。只需要像上面那样正常创建类的实例,并将方法绑定并调用即可。
PHP服务器端编程完美大师的参考文献,作者金城俊哉。