继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

万万的小刀
关注TA
已关注
手记 21
粉丝 1
获赞 1

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

课程截图

图片描述

图片描述

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP

热门评论

very nice

查看全部评论

相关阅读

类的设计原则