为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第21天--PHP面向对象编程第四章节面向对象的高级实践

标签:
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里面定义的方法的实现可以是不同的,这种现象就是多态

课程截图

图片描述

图片描述

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消