一、定义一个接口并完善它

  1. <?php
  2. interface iPerson
  3. {
  4. const NAME = '人类';
  5. public function name ();
  6. public function age ();
  7. public function sex ();
  8. }
  9. class Person implements iPerson
  10. {
  11. public $name;
  12. public $age;
  13. public $sex;
  14. public function __construct(string $name, int $age, string $sex)
  15. {
  16. $this->name = $name;
  17. $this->age = $age;
  18. $this->sex = $sex;
  19. }
  20. public function name () : string
  21. {
  22. return "我的名字是:{$this->name},";
  23. }
  24. public function age () : string
  25. {
  26. return "性别:{$this->sex},";
  27. }
  28. public function sex () : string
  29. {
  30. return "年龄:{$this->age}。";
  31. }
  32. }
  33. $p = new Person('张三', 25, '男');
  34. echo $p->name().$p->age().$p->sex();

二、定义一个抽象类

  1. <?php
  2. abstract class aFunction
  3. {
  4. const FUNCTION = '功能';
  5. abstract public function eat ();
  6. abstract public function say ();
  7. abstract public function work ();
  8. }
  9. class aPerson extends aFunction
  10. {
  11. public function eat ()
  12. {
  13. return '每个人都需要吃饭';
  14. }
  15. public function say ()
  16. {
  17. return '每个人都会说话';
  18. }
  19. public function work ()
  20. {
  21. return '每个人都需要工作';
  22. }
  23. }
  24. $ap = new aPerson;
  25. echo "每一个人类都具备的".aPerson::FUNCTION.":{$ap->eat()},{$ap->say()},{$ap->eat()}。";

抽象类:

  1. 定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的;
  2. 继承一个抽象类的时候,非抽象子类必须定义父类中的所有抽象方法;
  3. 调用方式必须匹配,即类型和所需参数数量必须一致。

接口

  1. 要实现一个接口,使用 implements 操作符。非抽象类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。
  2. 可以同时继承抽象类和实现接口,extends要写在前面.
  3. 抽象类实现接口,不需要重新其中的方法。
  4. 实现多个接口时,接口中的方法不能有重名。
  5. 接口也可以继承,通过使用 extends 操作符。
  6. 类要实现接口,必须使用和接口中所定义的方法完全一致的方式。否则会导致致命错误。

更多相关文章

  1. 定义一个接口和抽象类、对比接口与抽象类的区别与联系
  2. jQuery 中常用的 DOM 操作以及使用 jQuery 完成跨域请求操作
  3. 初识 jQuery 与$()工厂函数的四种用法,四种好用的 getter/setter
  4. 通俗易懂!Java 线程池详解
  5. 太硬核了!一文爆肝所有设计模式!
  6. Jackson,最牛掰的 Java JSON 解析器
  7. js 中数组常用方法介绍以及 JSON 对象的两个方法展示和跨域请求
  8. 常用的字符串方法介绍以及使用事件代理实现一个简单的留言板
  9. php学习笔记(接口与抽象类的区别与联系)

随机推荐

  1. Android 使用非阻塞的方式读写串口
  2. 配置android的命令行参数
  3. android开发2:eclipse 开发 Android 应用
  4. RelativeLayout常用属性
  5. Android 调试:java 跨工程调试 android 项
  6. textview 小结
  7. android计算器布局界面——基础编
  8. Android 的manager
  9. Android Architecture
  10. Android中各种ontouch事件