查看: 123|回复: 0

[tp6] php定义抽象类abstract并继承该抽象类

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2026-5-29 15:17:24 | 显示全部楼层 |阅读模式
首先我们在app\absclass目录创建一个Car.php类,代码如下:

  1. <?php

  2. namespace app\absclass;

  3. abstract class Car
  4. {
  5.     /**
  6.      * 车子都会启动
  7.      */
  8.     public function start()
  9.     {
  10.         echo "车子启动";
  11.     }
  12.    
  13.     /**
  14.      * 车子都会行驶
  15.      */
  16.     abstract public function run();
  17.    
  18.     /**
  19.      * 车子都可以熄火
  20.      */
  21.     public function stop()
  22.     {
  23.         echo "车子熄火";
  24.     }
  25. }
复制代码
然后我们在app\controller目录创建具体类Geely.php两个控制器类,代码如下:
  1. <?php

  2. namespace app\controller;

  3. use app\absclass\Car;

  4. class Geely extends Car
  5. {
  6.     // 调用启动
  7.     public function index()
  8.     {
  9.         $this->start();
  10.         // $this->run();
  11.         $this->stop();
  12.     }
  13.    
  14.     /**
  15.      * 必须实现抽象类的行驶
  16.      */
  17.     public function run()
  18.     {
  19.         echo '车子行驶';
  20.     }
  21. }
复制代码
抽象类中已将具体实现的普通方法,可以直接在子类中使用$this调用,如$this->start();
但如果是在抽象类定义的是抽象方法,比如run()方法,即只有方法名没有方法体(无大括号)则必须要在子类实现run()方法,否则无法运行Geely.php。
道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部