博客列表 >php基础知识:接口、抽象类

php基础知识:接口、抽象类

李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰原创
2021年02月22日 14:08:11679浏览

一、接口

1.接口的组成:

  • 关键字interface,接口的名字:例如interface iDemo{}
  • 接口的主体:只允许接口常量和公共抽象方法(接口的中的抽象发发无需关键字抽象关键字)这两类成员
  • 接口必须由实现类来使用,实现类必须实现接口中所有的公共抽象方法:通过关键字implements来实现接口
  • 实现类可以继承多个接口,由逗号分开,例如:
    class Demo implements iDemo,iDb{……}
  1. interface iDB
  2. {
  3. const APP="数据库接口";
  4. public function show():string;
  5. }

二、抽象类(加抽象关键字的类abstract)

1.抽象类,实在常规类定义时前加abstract关键字
2.抽象类中,必须有抽象方法abstract public function show(){……}
3.抽象类必须有实现类来实现,实现类必须实现抽象类所有的抽象方法,关键字extends

实战练习

1.代码

  1. <?php
  2. //接口
  3. interface iLink
  4. {
  5. public function inster();
  6. public function update();
  7. public function delete();
  8. public function find();
  9. }
  10. interface iDB
  11. {
  12. public function link();
  13. }
  14. //抽象类
  15. abstract class aDB
  16. {
  17. abstract public function link();
  18. public function __construct(){
  19. static::link();
  20. }
  21. abstract public function inster();
  22. abstract public function update();
  23. abstract public function delete();
  24. abstract public function find();
  25. }
  26. //实现类
  27. //抽象类实现
  28. class DB_Mysql extends aDB
  29. {
  30. public $db;
  31. public function link(){
  32. $this->db="链接成功";
  33. }
  34. public function inster(){
  35. return $this->db."插入内容";
  36. }
  37. public function update(){
  38. return $this->db."更新成功";
  39. }
  40. public function delete(){
  41. return $this->db."删除成功";
  42. }
  43. public function find(){
  44. return $this->db."查找到值";
  45. }
  46. }
  47. //接口实现类
  48. class DB_DPO implements iLink,iDB
  49. {
  50. public $db;
  51. public function __construct(){
  52. static::link();
  53. }
  54. public function link(){
  55. $this->db="接口类链接成功";
  56. }
  57. public function inster(){
  58. return $this->db."插入内容";
  59. }
  60. public function update(){
  61. return $this->db."更新内容";
  62. }
  63. public function delete(){
  64. return $this->db."删除内容";
  65. }
  66. public function find(){
  67. return $this->db."找到内容";
  68. }
  69. }
  70. $mysql=new DB_Mysql();
  71. echo $mysql->inster()."<br>";
  72. echo $mysql->update()."<br>";
  73. echo $mysql->delete()."<br>";
  74. echo $mysql->find()."<br>";
  75. echo "<hr>";
  76. $db=new DB_DPO();
  77. echo $db->inster()."<br>";
  78. echo $db->update()."<br>";
  79. echo $db->delete()."<br>";
  80. echo $db->find()."<br>";

2.运行结果

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议