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)