博客列表 >php学习笔记(接口与抽象类的区别与联系)

php学习笔记(接口与抽象类的区别与联系)

庖丁
庖丁原创
2021年02月05日 15:57:28651浏览

接口和抽象类联系是 都不能实例化,需要用实现类来将抽象方法过程化,才能被使用。
接口和抽象类区别是 1、接口中的方法都不带过程,只是描述方法的功能,相当于毛坯房;抽象类实现部分方法,部分方法只描述功能,相当于简装房。
2、实现类对接口的实现要用关键字 implements ,实现类对抽象类要用扩展关键字 extends

以下为实例演示

  1. <?php
  2. //接口定义关键词 interface
  3. interface iFour
  4. {
  5. const NAME = '四则运算';
  6. //加法
  7. static function jia($a,$b):int;
  8. //减法
  9. static function jian($a,$b):int;
  10. //乘法
  11. static function cheng($a,$b):int;
  12. //除法
  13. static function chu($a,$b);
  14. }
  15. //实现类需要用关键字 implements
  16. class Four implements iFour
  17. {
  18. static function jia($a,$b):int
  19. {
  20. return $a + $b;
  21. }
  22. static function jian($a,$b):int
  23. {
  24. return $a - $b;
  25. }
  26. static function cheng($a,$b):int
  27. {
  28. return $a * $b;
  29. }
  30. static function chu($a,$b)
  31. {
  32. return $a / $b;
  33. }
  34. }
  35. //返回 7
  36. echo Four::jia(2,5);
  37. //返回 2
  38. echo Four::jian(7,5);
  39. //返回 10
  40. echo Four::cheng(2,5);
  41. //返回 4
  42. echo Four::chu(20,5);
  43. //定义抽象类 用关键词 abstract
  44. abstract class School{
  45. function techer($name,$phone){
  46. return"老师姓名:{$name},联系方式:{$phone}";
  47. }
  48. abstract function student($name,$banji);
  49. }
  50. //实现类也叫工作类,必须将抽象类中abstract的方法实现
  51. class School1 extends School{
  52. function student($name,$banji){
  53. return"学生姓名:{$name},班级为:{$banji}";
  54. }
  55. }
  56. //类的实例化
  57. $xiaoxue = new School1;
  58. //返回 老师姓名:李华,联系方式:13612211456
  59. echo $xiaoxue->techer('李华',13612211456);
  60. //返回 学生姓名:小明,班级为:三年级二班
  61. echo $xiaoxue->student('小明','三年级二班');
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议