【九月打卡】第21天--PHP面向对象编程第四章节面向对象的高级实践
2022/9/29 4:16:19
本文主要是介绍【九月打卡】第21天--PHP面向对象编程第四章节面向对象的高级实践,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:PHP面向对象编程
课程章节:
4-6 对象接口-php面向对象编程
4-7 多态-php面向对象编程
课程链接
主讲老师:Peter
课程内容
学习到了PHP中的接口类,定义与实现的方式,是为了解决PHP类单继承的特性。接口的实现是多种多样的,这种特性我们称之为多态。
课程收获
一、对象接口
定义
使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
特点
接口通过“interface” 关键词来定义
接口可以通过“extends”关键词继承
接口不能实例化
接口所有方法都是“public”权限
接口可以定义常量成员,但不能定义变量成员
类通过“implements”关键词来实现接口,类必须完全实现接口定义的所有功能
类的方法必须有实现,接口的方法必须为空
一个类可以同时“implements”(实现)一个到多个接口
为什么需要接口
PHP 类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此 PHP 引入了类的接口技术
代码实现
interface ICanEat { public function eat($food); } interface ICanPee extends ICanEat { public function pee(); } class Human implements ICanEat { public function eat($food) { echo "Human eating ".$food."\n"; } } class Animal implements ICanEat { public function eat($food) { echo "Animal eating ".$food."\n"; } } class Human1 implements ICanPee { public function eat($food) { } public function pee() { } } $obj = new Human(); $obj->eat('Apple'); $obj = new Animal(); $obj->eat('Banana'); // 不能 实例化接口 // $eatObj = new ICanEat(); // 可以用instanceof关键字来判断某个对象是否实现了某个接口 var_dump($obj instanceof ICanEat);
二、多态
因为接口的方法实现可以有很多,所以对于接口里面定义的方法的具体实现是多种多样的,这种特性我们称之为多态
—比如接口A有两个实现B和C,B和C对A里面定义的方法的实现可以是不同的,这种现象就是多态
课程截图
这篇关于【九月打卡】第21天--PHP面向对象编程第四章节面向对象的高级实践的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享