【PHP】关于继承和覆盖
我尝试回到基础的基础上。
继承是指传承。
根据已经存在的类创建新的类,被称为父类或基类。
新的类被称为子类。
继承的好处
在子类中也可以像父类定义的函数一样使用,这样就不需要多次编写相似的代码,这不仅提高了代码的可重用性,还提高了代码的可读性,使得维护更加容易。
继承的使用方法 – de
可以通过使用 “class 子类名 extends 父类名 {}” 的形式进行继承。
<?php
// 親クラス
class ParentClass {
public function test(){
print '親クラスのメソッドです'."\n";
}
}
// 子クラス
class ChildClass extends ParentClass {
}
$a = new ChildClass();
echo $a->test();
//出力結果///////
親クラスのメソッドです
?>
覆盖重写所指的是
通过继承来覆盖父类的函数是前提条件。只需在子类中定义一个与父类同名的函数,并且参数也要匹配,就可以实现函数的覆盖。(※请注意参数的匹配)
覆盖的好处
你可以使用一个函数名称来根据类执行适当的处理(函数)。
使用的例子
<?php
// 親クラス
class ParentClass {
public function output(){
print '親クラスのメソッドです'."\n";
}
}
// 子クラス
class ChildClass extends ParentClass {
public function output(){
print "子クラスのメソッドが親クラスをオーバーライドしました";
}
}
$test = new ParentClass();
$test->output();
$test2 = new ChildClass();
$test2->output();
?>
////出力結果//////
親クラスのメソッドです
子クラスのメソッドが親クラスをオーバーライドしました
因为进行了继承,如果函数名称发生冲突,系统可能会问“该执行哪个?”但这没关系。
覆盖(Override)的用法
比如说,如果有多个类,只想对其中一个类进行不同的处理时,可以使用它。
<?php
// 4つのクラスでは、親クラスの処理をそのまま使いたい
class ParentClass {
public function duplicateCheck($id){
return [];
}
}
// 1つのクラスだけ、DBの重複チェックをしたい
class ChildClass extends ParentClass {
public function duplicateCheck($id){
return DB::findxx($id);
}
?>
在这种情况下,可以使用这个选项。