批改状态:合格
老师批语:这些都是一些最基本但最重要的内容
<?php//类继承class Nicola{public $name = '尼古拉';protected $sex = '男';private $money = '500万';public function write(){// 1.创建类实例$nicola = new Nicola;//2.访问类中的属性return "姓名: {$nicola->name}";}}class Son extends Nicola{//继承//父类的公共和受保护成员会自动成为子类的成员//使用extends相当于复制了父类中的公共和受保护的属性和方法public $name = '尼古拉';protected $sex = '男';public function write(){// 1.创建类实例$nicola = new Nicola;//2.访问类中的属性return "姓名: {$nicola->name}";}}
//重写// 重写与父类重名的属性protected $sex = '女';// 方法重写,实际上就是实现方法级的多态public function write(){// 1.创建类实例$nicola = new Nicola;// 在子类中可以引用父类的成员//2.访问类中的属性return "姓名: {$nicola->name},性别:{$nicola->sex},是一个大帅哥";}
//扩展// 在父类基础上添加新的功能protected $profession = '搬砖工/Boss';public function write2(){return "职业: {$this->profession}";}
实现类/工作类(不一定是普通类)
工作类是一个可以被实例化的普通类,第一步就是实现抽象类的抽象方法
<?php//抽象类//部分分离了设计(抽象类)与实现(工作类)abstract class Nicola{public $name = '尼古拉';protected $sex = '男';private $money = '500万';public function write(){return "姓名: {$this->name},性别:{$this->sex}";}//抽象方法:没有方法体abstract protected function write2();}//实现类/工作类(不一定是普通类)//工作累是一个可以被实例化的普通类//第一步就是实现抽象类的抽象方法//抽象类也可以被继承,也可以用在继承上下文环境中//抽象类允许有抽象成员,但不是强制的abstract class Son extends Nicola{protected $profession = '搬运工/boss';protected function write2(){return "{$this->profession}";}}class Sun extends Son{public function write2(){return "{$this->profession}";}}// 客户端//抽象方法不能被实例化// $son = new Son;// echo $son->write2();$sun = new Sun;echo $sun->write2();
使用与类相似的语法:抽象方法,常量,构造方法(魔术方法的一种)
<?php//接口:完全分离了设计与实现//语法:interface//使用与类相似的语法:抽象方法,常量,构造方法(魔术方法的一种)//默认访问控制或者是public//接口允许多继承,从而间接实现了php的多继承// 实现接口的功能:implements// 单接口interface iNicola{//接口常量const NATION = '中国梅州';//接口方法:默认就是抽象方法public static function write();// 构造方法}class Nicola implements iNicola{protected static $name = '尼古拉特斯拉';//接口中的抽象方法,必须在工作类中实现public static function write(){return self::$name . '家乡是:' . iNicola::NATION;}}echo iNicola::NATION;echo Nicola::write();
本节课学习了类的继承和抽象类的作用和功能,介绍了接口的基本语法和功能。类的继承实际上就是功能上的扩展和延申,把基础的通用的内容作为一个基类/父类,扩展类/子类延申扩展新的需求和功能,就好像 html 的公共部分一样,css 的公共样式一样。
抽象类中的抽象方法并不能实例化,因此必须要有工作类/实现类继承并且实现抽象类中的抽象方法。
接口是一个实现 php 多继承的功能,间接的实现了 php 的多继承功能。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号