博主信息
博文 53
粉丝 3
评论 0
访问量 66960
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
11月29日-抽象类、接口-***线上九期班
邯郸易住宋至刚
原创
748人浏览过

一、抽象类

代码

  1. <?php
  2. //抽象类(有一个抽象方法setName())
  3. abstract class Demo1
  4. {
  5. //成员属性
  6. public $name;
  7. //构造方法
  8. public function __construct($name)
  9. {
  10. $this->name = $name;
  11. }
  12. //返回用户名
  13. public function getName()
  14. {
  15. return '该用户名字:'.$this->name;
  16. }
  17. //重置用户名的抽象方法
  18. public abstract function setName($value);
  19. }
  20. //继承抽象类
  21. class demo2 extends Demo1
  22. {
  23. //继承父类构造方法
  24. public function __construct($name)
  25. {
  26. parent::__construct($name);
  27. }
  28. //实现父类当中的抽象方法
  29. public function setName($value)
  30. {
  31. return $this->name = $value;
  32. }
  33. }
  34. //客户端调用
  35. //实例化子类
  36. $obj = new Demo2('hhappysong');
  37. echo $obj->getName();
  38. echo '<hr>';
  39. //调用父类属性,重新赋值
  40. $obj->name = 'peter';
  41. echo $obj->getName();
  42. echo '<hr>';
  43. //调用已经在子类中实现的父类中的方法setName()
  44. $obj->setName('Jack');
  45. echo $obj->getName();

结果

二、接口

代码

  1. <?php
  2. interface iDemo3
  3. {
  4. //分布方式
  5. public function setLocation($location);
  6. //出租方式
  7. public function setRent($rent);
  8. }
  9. class Room implements iDemo3
  10. {
  11. public $location;
  12. public $rent;
  13. //必须实现setLocation()
  14. public function setLocation($location)
  15. {
  16. $this->location = $location;
  17. }
  18. //必须实现setRent()
  19. public function setRent($rent)
  20. {
  21. $this->rent = $rent;
  22. }
  23. //自定义方法
  24. public function getInfo()
  25. {
  26. return '这是'.$this->location.$this->rent.'***';
  27. }
  28. }
  29. //客户端调用
  30. //实例化
  31. $obj = new Room();
  32. //调用setLocation()设置分布方式
  33. $obj->setLocation('分散式');
  34. //调用setRent()设置出租方式
  35. $obj->setRent('合租');
  36. //调用getInfo()获取出租相关信息
  37. echo $obj->getInfo();

结果

三、总结

1、只要类中有一个抽象方法,这个类必须声明为抽象类

2、抽象类、接口中的方法只能有方法,不能有方法体

3、定义在接口和抽象类中的方法,必须在子类中全部实现

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:写得不错哟, 抽象与接口是现代编程的基础,非常重要
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学