PHP面向对象编程(10.接口)

PHP面向对象编程(10.接口)

基本介绍

所谓接口:就是将一些抽象方法封装到一起,在某个类需要使用时,只需要实现该接口就可以,说的实现接口就是指将该接口中的所有的抽象方法都实现了。

基本语法:

1
2
3
4
interface 接口名称 {
常量;
方法;
}

(1) interface 是关键字。

(2) 接口名称有命名规范是: iXxxxXxxx , 首先以小写的i开头。后面使用大驼峰命名规则

(3) 接口中的方法,都是抽象方法,但是不需要使用abstract 去修饰

(4) 接口中,不能有普通的成员属性,但是可以有常量。

接口是更加抽象的抽象类,抽象类中的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚、低耦合的设计思想。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
header('Content-Type:text/html;charset=utf-8');
// 定义一个接口,定义规范(方法)
// 现实生活中,不管什么设备都有三种工作状态【启动、工作、停止】

interface iUsb {
public function start();
public function working();
public function stop();
}

// 让手机设备来实现这个接口
class Phone implements iUsb {
public function start()
{
echo '手机激活';
// TODO: Implement start() method.
}
public function working()
{
echo '手机工作';
// TODO: Implement working() method.
}
public function stop()
{
echo '手机停止工作';
// TODO: Implement stop() method.
}
}
// 让相机设备来实现这个接口
class Camera implements iUsb {
public function start()
{
echo '相机激活';
// TODO: Implement start() method.
}
public function working()
{
echo '相机工作';
// TODO: Implement working() method.
}
public function stop()
{
echo '相机停止工作';
// TODO: Implement stop() method.
}
}
// 计算机
class Computer {
public function work(iUsb $iMyUsb) {
$iMyUsb->start();
$iMyUsb->working();
$iMyUsb->stop();
}
}
$computer = new Computer();
$phone = new Phone();
$camera = new Camera();
// 判断一个实现了接口的对象是不是接口的实例
var_dump($phone instanceof iUsb);
$computer->work($phone);
$computer->work($camera);
// 结果:
// true
// 手机激活手机工作手机停止工作相机激活相机工作相机停止工作

总结:

(1) 接口不能被实例化

(2) 接口中所有的方法都不能有主体,即接口中的方法都是抽象方法。

(3) 一个类可以实现多个接口,逗号隔开

(4) 接口中可以有属性,但只能是常量,默认是public, 但不能用 public 显式修饰

(5) 一个接口不能继承其它的类,但是可以继承别的接口

文章目录
  1. 1. PHP面向对象编程(10.接口)
    1. 1.1. 基本介绍
    2. 1.2. 示例
    3. 1.3. 总结:
本站总访问量 | 本页面被访问 | 您是第位小伙伴

© XueSi博客 版权所有 备案号 : 赣ICP备19008485号-1