一.特点:
1、抽象类特点
2、接口的特点
(1) 接口的方法必须是公开的。
(2) 接口的方法默认是抽象的,所以不在方法名前面加abstract。
(3) 接口可以定义常量,但不能定义成员属性,常量的定义和用法和类中常量一样。
(4) 类可以实现多个接口(用逗号隔开)
(5) 接口也可以继承接口。
二. 区别:
1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。
2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。
3、接口没有构造函数,抽象类可以有构造函数。
4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。
5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。
三 .选择:
四.示例:
abstract class people
{
var $name;
abstract function sayName();
}
interface mother
{
function beautiful();
}
interface father
{
function clever();
}
class son extends people implements mother,father
{
function beautiful()
{
echo "i‘m very beautiful!";
}
function clever()
{
echo "i‘m very clever!";
}
function __construct($name)
{
$this->name = $name;
}
function sayName()
{
echo $this->name;
}
}
$zww = new son("Tom");
$zww->beautiful();
$zww->clever();
$zww->sayName();
输出结果:i‘m very beautiful!i‘m very clever!Tom
原文:http://www.cnblogs.com/ant-moon/p/3931874.html