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也一样,只不过,动物类的生长需要吃东西,而植物类的生长需要进行光合作用!

相关推荐
我是唐青枫8 分钟前
Php Doctrine ORM 实战详解:从实体映射到查询、关联与事务
php
技术小结-李爽14 分钟前
【工具】Maven的下载、安装、使用
java·maven
极创信息17 分钟前
Linux挖矿病毒深度清理实战教程,从进程隐藏、Rootkit驻留到彻底根除
java·大数据·linux·运维·安全·tomcat·健康医疗
努力成为AK大王23 分钟前
并发编程的核心挑战、优化方案与核心知识点总结
java·开发语言·数据库
云烟成雨TD26 分钟前
Agent Scope Java 2.x 系列【10】技能(Skill)
java·人工智能·agent
摇滚侠31 分钟前
SpringMVC 入门到实战 DispatcherServlet 源码解读 92-95
java·后端·spring·maven·intellij-idea
juesdo41 分钟前
array_search()函数的用法
web安全·php
键盘歌唱家1 小时前
Spring AI 入门分享:它和“直接调 API“到底差在哪
java·人工智能·spring
宸丶一2 小时前
Day 10:LangGraph - Agent 的图执行引擎
java·windows·python
hikktn2 小时前
Excel 导出 OOM 预防实战:30 万行从堆溢出到 50MB 的演进
java·excel·easyexcel