12:接口

接口的概念

  • 接口类的定义:指定这个接口类必须实现哪些方法,但是不必定义方法体;
  • 接口类通过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的项目不管大小都没做过,所以理解不了,以后在写代码的过程中再慢慢百度,慢慢理解和应用吧

不会的知识就给他暂时先跳过去,不能耽误学后面的东西,大概的知道有这么个玩意儿就行

猜你喜欢

转载自blog.csdn.net/a2522086223/article/details/83826233