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

相关推荐
这儿有一堆花29 分钟前
住宅代理(Residential Proxy)技术指南
开发语言·数据库·php
one_love_zfl38 分钟前
java面试-微服务组件篇
java·微服务·面试
一只大袋鼠41 分钟前
Java进阶:CGLIB动态代理解析
java·开发语言
环流_1 小时前
HTTP 协议的基本格式
java·网络协议·http
爱滑雪的码农1 小时前
Java基础十三:Java中的继承、重写(Override)与重载(Overload)详解
java·开发语言
【 】4231 小时前
C++&STL(Standard Template Library,标准模板库)
java·开发语言·c++
茉莉玫瑰花茶1 小时前
LangChain 核心组件 [ 2 ]
java·数据库·langchain
信徒_1 小时前
ID 生成技术选型
java
niucloud-admin1 小时前
PHP V6 单商户常见问题——升级提示mkdir()处理方案
php
a8a3021 小时前
Laravel8.x新特性全解析
java·spring boot·后端