批改状态:合格
老师批语:再长路也长不过双腿, 行动起来吧
| STT | 操作 | 描述 |
|---|---|---|
| 1 | 继承 | 父类的二类成员自动成为子类的成员 |
| 2 | 重写 | 覆写与父类/基类同名的成员(属性, 方法) |
| 3 | 扩展 | 子类添加自身的方法来增加/扩展父类的功能 |
演示代码:
<?php// 类的继承的三个功能class Actor{protected $name = '吴邪';protected $age = 28;private $salary = 19999;protected static $nationality = '中国/CHINA';public function resume(){return "姓名: {$this->name} , 年龄: {$this->age}, 工资: {$this->salary}";}}// 类的继承的三个功能// 继承class Lending1 extends Actor {// 现在该子类中什么内容也没有,可以访问父类中的成员}// 重写和扩展class Lending2 extends Actor{// 1. 重写// 属性重写protected $age = 35;// 方法重写, 方法级的多态public function resume(){// 在子类中可以引用父类成员// parent::write()return parent::resume() . ', 是盗墓笔记的主角之一!';}// 2. 扩展// 属性扩展protected $profession = '盗墓贼';// 方法扩展public function resume1(){// return "$this->salary}"; 不能访问return parent::resume() . ", 职业: {$this->profession}";}}// 客户端$lending1 = new Lending1;// 访问的是父类中的成员(private也能访问)echo $lending1->resume() . '<br>';$lending2 = new Lending2;echo $lending2->resume() . '<br>';echo $lending2->resume1() . '<br>';
演示效果展示:

abstract抽象类关键字只要一个类中有一个抽象方法, 那么这个类就是:抽象类
抽象类的作用: 部分分离了” 设计(抽象类中完成)与实现(工作类中完成)
演示代码:
<?php// 类的继承的三个功能abstract class Actor{protected $name = '吴邪';protected $age = 28;private $salary = 19999;protected static $nationality = '中国/CHINA';// 具体方法:有方法体: {...},public function resume(){return "姓名: {$this->name} , 年龄: {$this->age}, 工资: {$this->salary}";}// 抽象方法:没有方法体abstract protected function resume1();}// 工作类也可是一个抽象类,继承后才能调用abstract class Lending1 extends Actor{protected $profession = '盗墓贼';// 方法扩展public function resume1(){// return "$this->salary}"; 不能访问return parent::resume() . ", 职业: {$this->profession}";}}class Work extends Lending1 {}// 客户端$work = new Work;echo $work->resume1() . '<br>';
演示效果展示:

关键字:
interface
语法和类相似: 抽象方法, 常量, 构造方法
所的方法都是抽象方法
访问控制必须是public
接口: 完全分离了” 设计(抽象类中完成)与实现(工作类中完成)
接口实现关键字:implements
演示代码:
<?php// 接口使用场景1: 单接口interface iActor{// 接口常量const NATION = '中国';// 接口方法: 都是抽象方法public function resume();}// 工作类实现接口class Lending implements iActor{protected $name = '张小哥';// 接口中的抽象方法,必须在工作类实现public function resume(){return $this->name . ' 的国籍是: ' . iActor::NATION;}}// 客户端$lending = new Lending;echo $lending->resume();
演示效果展示:

初步理解继承、抽象类、接口的基础知识和简单的用法,当然离完全掌握还差很远,书读百遍,其义自现,想要真正的掌握还要多读多写。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号