PHP面向对象(5)

接口

接口使用interface关键字来定义,接口里面只能写没有具体逻辑的方法(这与抽象类不同,抽象类里还可以定义属性,接口是不可以定义属性的)。你可以把接口这样理解:接口表示某些类具有的共同行为,即某些类都能做什么;抽象类表示某些类都是什么类,都属于什么类。看下面的接口定义,例如:

复制代码
<?php
interface Icreature {
    public function grow();
}
class Animal implements Icreature{
    public function grow(){
        echo "动物的生长,需要吃东西".PHP_EOL;
    }
}
class Plant implements Icreature{
    public function grow(){
        echo "植物的生长,需要进行光合作用".PHP_EOL;
    }
}
$dog = new Animal();
$rose = new Plant();
$dog->grow();
$rose->grow();
?>

执行以上语句,输出如下:

复制代码
动物的生长,需要吃东西
植物的生长,需要进行光合作用

注:定义一个接口,使用interface关键字,后面写接口的名称,然后在大括号里写上可以执行的方法,这个方法没有具体的实现,例如上面定义了一个生物类接口Icreature;接口的名称,最好以大写的I开头,将来一看到以I开头的就表示接口,代码易于理解。接口的具体实现需要使用implements来实现,并要实现接口中的方法(写上具体的接口的方法逻辑),例如以上定义了动物类Animal 实现(implements)了 Icreature接口,并实现了动物类具体的生长方法grow,植物类Plant也一样,只不过,动物类的生长需要吃东西,而植物类的生长需要进行光合作用!

相关推荐
铁蛋AI编程实战13 分钟前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
晚霞的不甘24 分钟前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
SunnyDays101126 分钟前
使用 Java 冻结 Excel 行和列:完整指南
java·冻结excel行和列
摇滚侠38 分钟前
在 SpringBoot 项目中,开发工具使用 IDEA,.idea 目录下的文件需要提交吗
java·spring boot·intellij-idea
岁杪杪40 分钟前
关于运维:LINUX 零基础
运维·服务器·php
云姜.42 分钟前
java多态
java·开发语言·c++
李堇1 小时前
android滚动列表VerticalRollingTextView
android·java
泉-java1 小时前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
青茶3601 小时前
php怎么实现订单接口状态轮询(二)
前端·php·接口
zfoo-framework2 小时前
帧同步和状态同步
java