类中接口的应用
接口:一种成员属性全部为抽象的特殊抽象类,在程序中同为规范的作用
1、类中全部为抽象方法 2、抽象方法前不用加abstract 3、接口抽象方法属性为public 4、成员属性必须为常量 |
1、类中至少有一个抽象方法 2、抽象方法前需加abstract |
接口 |
区别 |
共同点: |
1、本身都不能被实例化,必须被继承或者引用
2、继承或者引用后,需要把所有抽象方法重载方可使用
|
创建接口使用interface替代class
接口引用区别与之前我们的学的类继承关键字 extends,继承只能是单一性,而
接口可以使用关键字:implements 多个引用并用逗号 , 分开.
1、普通类引用接口例子:
class mypc implements demo , demo2 , demo3{
……
}
2、抽象类引用接口例子:
abstract class mypc implements demo , demo2 , demo3{
……
}
同时出现继承和接口时:先继承后接口,单继承多接口
<?php
header("Content-Type:text/html;charset=UTF-8");
interface demo{
const NAME="名称";//属性必须为常量
function fun1();//方法必须为抽象方法
function fun2();
}
interface demo2{
function fun3();
function fun4();
}
interface demo3
{
const PLAY="七雄争霸";
function fun5();
}
interface demo4{
const MUSIC="酷狗音乐";
function fun6();
}
//可以存在多个接口
class MyPc implements demo,demo2{
//必须对抽象方法进行重载
function fun1(){
echo "=======<br/>";
}
function fun2(){
echo ".......<br/>";
}
function fun3(){
echo "++++++++<br/>";
}
function fun4(){
echo "000000000000<br/>";
}
}
//先继承后接口,单继承多接口
class MyPc2 extends MyPC implements demo3,demo4{
function fun5(){
echo "Let us play game !<br/>";
}
function fun6(){
echo "Hello Kugou!<br/>";
}
}
$p=new MyPc();
$p->fun1();
echo MyPc::NAME;
$pe=new MyPc2();
$pe->fun1();
$pe->fun5();
$pe->fun6();
echo Mypc2::PLAY." ";
echo MyPc2::MUSIC;
?>
运行结果:
=======
名称=======
Let us play game !
Hello Kugou!
七雄争霸 酷狗音乐