PHP面向对象-抽象类和接口

抽象类:

一种特殊的类

类中有一个是抽象方法就是抽象类

关键字:abstract

抽象类中可以有不是抽象方法或抽象属性,但访问权限不是是私有的

抽象类的作用:

使用抽象类就包含了继承关系

为子类定义了公共接口

为子类提供了规范和约束

abstract class aa{}

抽象方法:

没有方法体(声明时没有花括号和内容),直接分好结束;

Abstract关键字修饰

abstract function aa();

注意:

抽象类不能被实例化,只能被继承

abstract class aa{ //定义抽象类 只能被继承不能被实例化

abstract function aa();//抽象方法抽象类中的成员方法使用时必须被重载

abstract function bb();

}

class bb extends aa{ //继承抽象类

function aa(){ //实现方法

echo ‘aaaaaaaaaaaaaaaaaaa’;

}

function bb(){}

}

$a=new bb;

$a->aa();

接口:

特殊的抽象类,抽象类的方法都是抽象的

必须为公共的public

常量

抽象方法不需要前面加abstract关键字修饰,接口中的方法都是抽象方法

关键字:interface

class类实现接口关键字:implements

如实现多个接口,可用,(逗号)分割

例:

interface aa{ //声明一个接口

function insert(); //接口内定义的成员方法 无需前面加abstract修饰

}

interface bb{ //定义第二个接口

function select();

}

interfacecc extends bb{ //接口继承

function update(); //继承后的接口可在重新添加新的成员方法

}

class dd implements aa,cc{ //类实现接口 多接口用,(逗号隔开)

function insert(){}//成员方法定义接口内的所有成员方法都必须定义,否则报致命性错误 function update(){}

function delete(){}

}

$a= new dd; //实例化对象