批改状态:合格
老师批语:OOP编程的核心, 咱们实际上都接触到了, 继续加油
/** 示例演示类继承的三大功能 */// 基类:Animalabstract class Animal{public $type = '哺乳动物';protected $name = '';/*** 介绍自己*/public function adviceMyself(){return '我是' . $this->name;}}/*** 继承* 实现类:Dog*/class Dog extends Animal{/*** 属性重写*/public $name = '狗';/*** 扩展基类*/public function WagTail(){return '摇尾巴~~~';}}/*** 继承* 实现类:Cat*/class Cat extends Animal{public $name = '猫';/*** 重写父类方法*/public function adviceMyself(){return '我是' . $this->name . ', 我属于' . $this->type . ', 我会' . $this->howl();}}/* 汤姆 */$tom = new Cat;/* 史努比 */$snoopy = new Dog;// 介绍自己/* 汤姆介绍自己,调用重写父类的方法 */echobr($tom->adviceMyself());/* 史努比介绍自己,调用继承自父类的方法 */echobr($snoopy->adviceMyself());// 史努比摇尾巴,扩展父类没有的方法echobr($snoopy->WagTail());/*result:我是猫, 我属于哺乳动物, 我会喵喵喵~~~我是狗喵喵喵~~~汪汪汪~~~摇尾巴~~~*/
- - 抽象类的作用: 部分分离了声明与实现, 声明在抽象类中完成, 实现在工作类中完成.
/** 实例演示抽象类的作用与实现 */// 基类:动物类abstract class Animal{public $type = '哺乳动物';protected $name = '';// 不同动物叫的方式不一样,所以定义为抽象方法abstract public function howl();}// 实现类/* 狗 */class Dog extends Animal{public $name = '狗';public function howl(){return '汪汪汪~~~';}}/* 猫 */class Cat extends Animal{public $name = '猫';public function howl(){return '喵喵喵~~~';}}/* 史努比 */$snoopy = new Dog;echobr($snoopy->name . '的叫声是:' . $snoopy->howl());/* 汤姆 */$tom = new Cat;echobr($tom->name . '的叫声是:' . $tom->howl());/*result:狗的叫声是:汪汪汪~~~猫的叫声是:喵喵喵~~~*/
- 接口完全分离了声明与实现- 接口使用关键字: interface- 接口中定义的成员必须是public- 接口允许多继承, 从而间接实现PHP的多继承
// 定义接口interface Itf1{// 定义接口常量const MAX = 65535;// 定义抽象方法(不需要abstract关键字)public function func1();}class Demo1 implements Itf1{// 实现接口的抽象方法public function func1(){return __CLASS__ . '类的' . __METHOD__ . '方法';}}// 使用接口中的常量echobr(Itf1::MAX);// 调用实现了接口的方法echobr((new Demo1)->func1());/*result:65535Demo1类的Demo1::func1方法*/
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号