接口和抽象类联系是 都不能实例化,需要用实现类来将抽象方法过程化,才能被使用。
接口和抽象类区别是 1、接口中的方法都不带过程,只是描述方法的功能,相当于毛坯房;抽象类实现部分方法,部分方法只描述功能,相当于简装房。
2、实现类对接口的实现要用关键字 implements ,实现类对抽象类要用扩展关键字 extends
以下为实例演示
<?php
//接口定义关键词 interface
interface iFour
{
const NAME = '四则运算';
//加法
static function jia($a,$b):int;
//减法
static function jian($a,$b):int;
//乘法
static function cheng($a,$b):int;
//除法
static function chu($a,$b);
}
//实现类需要用关键字 implements
class Four implements iFour
{
static function jia($a,$b):int
{
return $a + $b;
}
static function jian($a,$b):int
{
return $a - $b;
}
static function cheng($a,$b):int
{
return $a * $b;
}
static function chu($a,$b)
{
return $a / $b;
}
}
//返回 7
echo Four::jia(2,5);
//返回 2
echo Four::jian(7,5);
//返回 10
echo Four::cheng(2,5);
//返回 4
echo Four::chu(20,5);
//定义抽象类 用关键词 abstract
abstract class School{
function techer($name,$phone){
return"老师姓名:{$name},联系方式:{$phone}";
}
abstract function student($name,$banji);
}
//实现类也叫工作类,必须将抽象类中abstract的方法实现
class School1 extends School{
function student($name,$banji){
return"学生姓名:{$name},班级为:{$banji}";
}
}
//类的实例化
$xiaoxue = new School1;
//返回 老师姓名:李华,联系方式:13612211456
echo $xiaoxue->techer('李华',13612211456);
//返回 学生姓名:小明,班级为:三年级二班
echo $xiaoxue->student('小明','三年级二班');