12:接口
程序员文章站
2024-03-25 11:28:46
...
接口的概念
- 接口类的定义:指定这个接口类必须实现哪些方法,但是不必定义方法体;
- 接口类通过
interface
关键词定义,就像定义一个标准类一样,但是里面的所有方法都是空的; - 接口类中的所有方法都是公有的,这是接口的特性
- 实现接口类,通过
implements
关键词来实现接口类中的方法,必须全部实现; - 接口类中的常量和类常量是一样的;
接口的具体语法
-
类的概念比较大,假如类代表一个人,这个人有胳膊,有腿,有鼻子,有眼睛
-
接口类就是功能,为什么叫接口类,因为接口页能被继承,被其他接口继承,拥有类的特性,而功能则可以是胳膊能打人,腿可以走路,打人走路就是功能,换个词叫打人走路就是接口;
-
定义接口不能定义接口中方法的具体方法体,所以需要真正的类来实现这个接口的功能,也就是接口类中的函数;
-
定义接口示例:
interface 接口名{
function say();
}
- 接口继承示例:
interface 接口1{
function foo1();
}
interface 接口2 extends 接口1{
funciton foo2();
}
- 实现接口示例:
interface 接口1{
function say();
}
interface 接口2{
function foo();
}
class A implements 接口1,接口2{
public function say(){
echo 'Hello!';
}
public function foo(){
echo 'foo';
}
}
$a = new A();
$a->say();
- 接口可以被继承,继承与类继承一致,一次只能继承一个;
- 接口实现的时候,可以一次实现多个接口,但是必须将所有方法全部实现
- 接口中只能有方法,不能有属性;
- 接口类中可以有常量,接口常量与类常量一样;
接口类的应用场景
- 面向对象的一个观点:-----做的越多,越容易出错
- 例如抽象类:他的作用就是仅定义类的规范,类的模板,具体实现,交给子类
- 而接口类的作用:比抽象类更加严格,定义了就必须实现;
接口类与抽象类的区别
- 接口是一个特殊的抽象类,也可以看作是类的模板,分工协作的时候用来规范开发和调用,能起到很好的效果;
- 如果接口中的方法名被改变了,那么在实现它的类中就必须同步更改,而抽象类中则不是,在抽象类中的方法名改变了,子类不需要同步改名,不会导致报错;
- 抽象类只能使用单继承,而接口可以多继承;
- 接口中不能写方法体,而抽象类可以,抽象类可以写抽象方法,也可以写普通方法;
协同开发的人越多,这些规范越能体现价值;
接口和抽象类的区别,以及应用场景,目前来说,因为在学习中,PHP的项目不管大小都没做过,所以理解不了,以后在写代码的过程中再慢慢百度,慢慢理解和应用吧
不会的知识就给他暂时先跳过去,不能耽误学后面的东西,大概的知道有这么个玩意儿就行