【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);
  }
?>

在这种情况下,可以使用这个选项。

广告
将在 10 秒后关闭
bannerAds