批改状态:合格
老师批语:全部作业务必在6月10日前完成
继承: 父类的二类成员自动成为子类的成员
重写: 覆写与父类/基类同名的成员(属性, 方法)
扩展: 子类添加自身的方法来增加/扩展父类的功能
// 父类class fatherclass{// 常规类属性public $father='父类常规属性值';public $father1='准备被子类复写的父类常规属性';// 静态类属性public static $sfather='父类静态属性值';// 常规类方法public function fatherfun(){// 返回常规属性return '父类常规方法:'.__FUNCTION__;}// 准备被子类复写的常规类方法public function fatherfun1(){return '父类常规方法:'.__FUNCTION__;}// 静态类方法public static function sfatherfun(){return '父类静态方法:'.__FUNCTION__;}}// 子类class sonclass extends fatherclass{// 1、继承功能:子类中可直接调用父类中的属性及方法// 实例化子类后即可直接访问父类中的属性和方法// 2、重写功能:子类中可对父类中的属性及方法进行重写// 属性重写:public $father1='被子类重写的父类属性值';// 方法重写:public function fatherfun1(){return '被子类重写的方法:'.__FUNCTION__;}// 3、扩展功能:子类可对父类中的属性和方法进行扩展// 属性扩展:public $son='子类扩展的属性值';// 方法扩展:public function sonfun(){return '子类扩展的方法:'.__FUNCTION__;}}// 实例化子类$sonclass=new sonclass;// 直接访问父类常规属性echo '直接访问父类常规属性:',$sonclass->father,'<hr>';// 直接访问父类静态属性echo '直接访问父类静态属性:',$sonclass::$sfather,'<hr>';// 直接访问父类常规方法echo '直接访问父类常规方法:',$sonclass->fatherfun(),'<hr>';// 直接访问父类静态方法echo '直接访问父类静态方法:',$sonclass::sfatherfun(),'<hr>';// 访问子类改写父类的属性echo '访问被子类改写的父类属性:',$sonclass->father1,'<hr>';// 访问子类改写父类的方法echo '访问被子类改写的父类方法:',$sonclass->fatherfun1(),'<hr>';// 访问子类扩展的属性echo '访问子类扩展的属性:',$sonclass->son,'<hr>';// 访问子类扩展的方法echo '访问子类扩展的方法:',$sonclass->sonfun(),'<hr>';

抽象类的作用:部分分离了设计与实现,将设计抽象化,待到实现时再具象化
// 设计(抽象类),用关键字abstract声明抽象类abstract class absclass{// 抽象属性protected $absname;// 抽象方法abstract protected function absfun();}// 实现(工作类),用关键字extends继承class jobclass extends absclass{// 抽象属性的实现:给属性赋值public $absname='被实现的属性值';// 抽象方法的实现:写上方法体public function absfun(){return '被实现的抽象方法:'.__FUNCTION__;}}// 实例化工作类$jobclass=new jobclass;// 访问工作类属性echo '访问工作类属性:',$jobclass->absname,'<hr>';// 访问工作类方法echo '访问工作类方法:',$jobclass->absfun(),'<hr>';

接口: 完全分离了”设计与实现”
使用关键字: interface 来声明接口
使用与类相似的语法: 抽象方法, 常量, 构造方法(魔术方法的一种)
默认访问控制必须是public
接口允许多继承, 从而间接实现了PHP的多继承
// 设计(接口):完全分离了设计与实现,interfaceinterface iface{// 接口常量:用关键字const声明const MY='接口常量值';// 接口方法public function ifun();}// 实现(工作类),用关键字implements继承接口class job implements iface{public $myname='工作类属性值';public function ifun(){return '工作类中实现的接口方法:'.__FUNCTION__;}}// 实例化工作类$job=new job;// 访问接口常量echo '访问接口常量:',iface::MY,'<hr>';// 访问工作类中的属性echo '访问工作类中的属性:',$job->myname,'<hr>';// 访问在工作类中实现的接口方法echo '访问在工作类中实现的接口方法:',$job->ifun(),'<hr>';

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号