PHP的面向对象另一个重要组成就是接口。
接口功能与抽象类类似,但是也有不同
接口
接口的几个特性
1. 不能包含具体方法和属性变量
2. 可以包含常量,但是常量不能被子类或者子接口覆盖
3. 可以有抽象方法
4. 接口定义的所有方法都必须是公有的
5. 接口可以继承
6. 可以同时实现多个接口,使用逗号(,)分隔,实现多个接口的时候,各个接口的方法不能重名
接口一般以I或者i开头,使用关键字interface
声明。
声明接口示例:
<?php
interface IUser
{
public function getUser($username);
abstract function setSex($sex);
}
错误示例:
<?php
interface IUser
{
public $age;
public function getUser($username);
abstract function setSex($sex);
}
接口的实现
接口的实现类必须实现接口的所有方法,使用关键字implements
,常量在接口或者类中使用作用域解析符(::
)存取常量
示例:
<?php
interface IUser
{
const AGE=1;
public function getUser($username);
abstract function setSex($sex);
}
class User implements IUser
{
public function getUser($username)
{
echo $username;
}
public function setSex($sex)
{
echo $sex;
}
}
$user = new User;
$user->getUser('vilay');
echo '<br>';
$user->setSex('男');
echo '<br>';
echo $user::AGE;
接口与抽象类尽量放到一起学习理解。
PHP的抽象类01)