admin 发表于 2026-5-29 15:17:24

php定义抽象类abstract并继承该抽象类

首先我们在app\absclass目录创建一个Car.php类,代码如下:

<?php

namespace app\absclass;

abstract class Car
{
    /**
   * 车子都会启动
   */
    public function start()
    {
      echo "车子启动";
    }
   
    /**
   * 车子都会行驶
   */
    abstract public function run();
   
    /**
   * 车子都可以熄火
   */
    public function stop()
    {
      echo "车子熄火";
    }
}然后我们在app\controller目录创建具体类Geely.php两个控制器类,代码如下:
<?php

namespace app\controller;

use app\absclass\Car;

class Geely extends Car
{
    // 调用启动
    public function index()
    {
      $this->start();
      // $this->run();
      $this->stop();
    }
   
    /**
   * 必须实现抽象类的行驶
   */
    public function run()
    {
      echo '车子行驶';
    }
}抽象类中已将具体实现的普通方法,可以直接在子类中使用$this调用,如$this->start();
但如果是在抽象类定义的是抽象方法,比如run()方法,即只有方法名没有方法体(无大括号)则必须要在子类实现run()方法,否则无法运行Geely.php。
页: [1]
查看完整版本: php定义抽象类abstract并继承该抽象类