🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **抽象类和接口的区别** **抽象类和接口的联系**   1.都是类   2.都可以定义**常量**和**抽象方法**   3.子类继承抽象类或者实现接口,**必须实现所有的抽象方法**,如果不能实现所有抽象方法,就必须申明为抽象类   4.接口和抽象类都是定义规则的   5.接口的方法必须是公开的即public **区别:**   1.抽象类可以定义**普通属性**和**普通方法**而接口不能   2.抽象类的抽象方法必须加上abstract,接口中抽象方法省略了abstract(默认抽象方法)   3.子类只能继承一个抽象类,但是可以实现多个接口 例子: ``` abstract class Person {  public $name = '张三';  const USER = 'root';  public function demo()  {   echo '你好';  }  abstract public function eat(); } interface Boy {  const HOST = 'localhost';  public function demo(); } // 继承了Person类,实现Boy接口 class Girl extends Person implements Boy {  public function eat()  {   echo '今天中午吃个麻辣香锅';  }  public function demo()  {   echo '有点辣,放点胡椒吧';  } } ```