一、接口
1.接口的组成:
- 关键字
interface
,接口的名字:例如interface iDemo{}
- 接口的主体:只允许接口常量和公共抽象方法(接口的中的抽象发发无需关键字抽象关键字)这两类成员
- 接口必须由实现类来使用,实现类必须实现接口中所有的公共抽象方法:通过关键字
implements
来实现接口 - 实现类可以继承多个接口,由逗号分开,例如:
class Demo implements iDemo,iDb{……}
interface iDB
{
const APP="数据库接口";
public function show():string;
}
二、抽象类(加抽象关键字的类abstract)
1.抽象类,实在常规类定义时前加abstract
关键字
2.抽象类中,必须有抽象方法abstract public function show(){……}
3.抽象类必须有实现类来实现,实现类必须实现抽象类所有的抽象方法,关键字extends
实战练习
1.代码
<?php
//接口
interface iLink
{
public function inster();
public function update();
public function delete();
public function find();
}
interface iDB
{
public function link();
}
//抽象类
abstract class aDB
{
abstract public function link();
public function __construct(){
static::link();
}
abstract public function inster();
abstract public function update();
abstract public function delete();
abstract public function find();
}
//实现类
//抽象类实现
class DB_Mysql extends aDB
{
public $db;
public function link(){
$this->db="链接成功";
}
public function inster(){
return $this->db."插入内容";
}
public function update(){
return $this->db."更新成功";
}
public function delete(){
return $this->db."删除成功";
}
public function find(){
return $this->db."查找到值";
}
}
//接口实现类
class DB_DPO implements iLink,iDB
{
public $db;
public function __construct(){
static::link();
}
public function link(){
$this->db="接口类链接成功";
}
public function inster(){
return $this->db."插入内容";
}
public function update(){
return $this->db."更新内容";
}
public function delete(){
return $this->db."删除内容";
}
public function find(){
return $this->db."找到内容";
}
}
$mysql=new DB_Mysql();
echo $mysql->inster()."<br>";
echo $mysql->update()."<br>";
echo $mysql->delete()."<br>";
echo $mysql->find()."<br>";
echo "<hr>";
$db=new DB_DPO();
echo $db->inster()."<br>";
echo $db->update()."<br>";
echo $db->delete()."<br>";
echo $db->find()."<br>";
2.运行结果