PHP OOP 接口
PHP - 什么是接口?
接口允许您指定类应该实现哪些方法。
接口使得以相同方式使用各种不同的类变得容易。当一个或多个类使用相同的接口时,这被称为“多态性”。
接口声明为 interface
关键词:
句法
<?php
接口 接口名称 {
公共函数someMethod1();
公共函数someMethod2($name,$color);
公共函数someMethod3():字符串;
}
?>
PHP - 接口与抽象类
接口与抽象类类似。接口和抽象类之间的区别是:
- 接口不能具有属性,而抽象类可以
- 所有接口方法必须是公共的,而抽象类方法是公共的或受保护的
- 接口中的所有方法都是抽象的,因此无法在代码中实现,并且 abstract 关键字不是必需的
- 类可以实现接口,同时继承自另一个类
PHP 使用接口
要实现接口,类必须使用 implements
关键词。
实现接口的类必须实现 全部 接口的方法。
例子
<?php
接口动物{
公共函数makeSound();
}
Cat 类实现 Animal {
公共函数 makeSound() {
回声“喵呜”;
}
}
$动物=新猫();
$动物->制作声音();
?>
亲自尝试 »
以上面的例子来说,假设我们想编写一个软件来管理一群动物。有些动作是所有动物都能做的,但每只动物都有自己的做事方式。
使用接口,我们可以编写一些适用于所有动物的代码,即使每种动物的行为不同:
例子
<?php
// 接口定义
接口动物{
公共函数makeSound();
}
// 类定义
Cat 类实现 Animal {
公共函数 makeSound() {
echo "喵呜";
}
}
类 Dog 实现 Animal {
公共函数 makeSound() {
回声“吠”;
}
}
类 Mouse 实现 Animal {
公共函数 makeSound() {
echo “吱吱”;
}
}
// 创建动物列表
$cat = 新 Cat();
$狗 = 新狗();
$mouse = 新鼠标();
$动物 = 数组($猫, $狗, $老鼠);
// 告诉动物发出声音
foreach($animals 作为 $animals) {
$动物->制作声音();
}
?>
亲自尝试 »
示例解释
猫、狗和老鼠都是实现 Animal 接口的类,这意味着它们都可以使用 makeSound()
方法。因此,我们可以循环遍历所有动物并告诉它们发出声音,即使我们不知道每种动物是什么类型。
由于接口没有告诉类如何实现方法,因此每种动物都可以用自己的方式发出声音。