博主信息
博文 39
粉丝 0
评论 0
访问量 39986
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP:继承、抽象与接口
原创
817人浏览过

继承的三大功能演示

  1. <?php
  2. // 类的继承
  3. // 父类: 基类
  4. class User
  5. {
  6. protected $name = '卫斯理';
  7. protected $age = 45;
  8. private $salary = 1;
  9. protected static $nationality = '中国/香港';
  10. public function write()
  11. {
  12. return "姓名: {$this->name} , 年龄: {$this->age}";
  13. }
  14. }
  15. // 子类对父类的三种操作: 继承, 重写, 扩展
  16. // 1. 继承: 父类的二类成员自动成为子类的成员
  17. // 2. 重写: 覆写与父类/基类同名的成员(属性, 方法)
  18. // 3. 扩展: 子类添加自身的方法来增加/扩展父类的功能
  19. class Rob extends User
  20. {
  21. // 1. 重写父类成员
  22. // 属性重写
  23. protected $age = 55;
  24. // 方法重写, 方法级的多态
  25. public function write()
  26. {
  27. // 在子类中可以引用父类成员
  28. // parent::write()
  29. return parent::write() . ', 是一个不可思议事件的探索者~~';
  30. }
  31. // 2. 扩展
  32. // 属性扩展
  33. protected $profession = '未知探索者';
  34. // 方法扩展
  35. public function write1()
  36. {
  37. return parent::write() . ", 职业: {$this->profession}";
  38. }
  39. }
  40. // 客户端
  41. $user = new User;
  42. echo $user->write() . '<br>';
  43. $rob = new Rob;
  44. echo $rob->write() . '<br>';
  45. echo $rob->write1() . '<br>';

演示效果

抽象类的演示

  1. <?php
  2. // 抽象类的作用与实现
  3. // 抽象类: 部分分离了" 设计(抽象类中完成)与实现(工作类中完成)"
  4. abstract class User
  5. {
  6. protected $name = '王胖子';
  7. protected $age = 40;
  8. // 类方法
  9. protected function output()
  10. {
  11. return "姓名: {$this->name} , 年龄: {$this->age}";
  12. }
  13. // 抽象方法:没有方法体,类方法是抽象类的,称为抽象类
  14. abstract protected function output1();
  15. }
  16. // 工作了实现例,也可是一个抽象类
  17. abstract class Rob extends User{
  18. protected $profession = '摸金校尉助手';
  19. // 必须将抽象类中的抽象方法实现
  20. protected function output1() {
  21. return parent::output() . ", 职业: {$this->profession}";
  22. }
  23. }
  24. // 客户端
  25. // 抽象类不能被实例化,最终工作类: 允许实例化
  26. class Work extends Rob
  27. {
  28. public function output1()
  29. {
  30. return parent::output1();
  31. }
  32. }
  33. $work = new Work();
  34. echo $work->output1();

演示效果

【实例】接口的基本语法

  1. <?php
  2. // 接口: 完成分离了"设计与实现"
  3. // 关键字: interface
  4. // 使用与类相似的语法: 抽象方法, 常量, 构造方法(魔术方法的一种)
  5. // 默认访问控制必须是public
  6. // 接口允许多继承, 从而间接实现了PHP的多继承
  7. // implements
  8. // 接口的基本语法 -->单接口
  9. interface iUser
  10. {
  11. // 接口常量
  12. const Nation = '中国';
  13. // 接口方法(抽象方法)
  14. public static function output();
  15. }
  16. // 工作类实现接口
  17. class User implements iUser
  18. {
  19. // 类变量
  20. protected static $name = '王胖子';
  21. // 接口中的抽象方法,必须在工作类实现
  22. public static function output()
  23. {
  24. return self::$name . '的国籍是'. iUser::Nation;
  25. }
  26. }
  27. // 客户端
  28. echo User::output();

演示效果

总结:
1.PHP面向对象的三大特征是封装、继承、多态。
子类对父类(基类)的三种操作:继承(系统自动完成)、重写、扩展。
2.抽象类的演示中,不知哪里有问题,总是没有结果显示,每条语句都对照过,查不出问题,最后没办法,只能另起文件再做一次就没问题了。我估计是搜狗输入法和这个VSC编辑器配合的问题。
3.单接口的语法:常量、抽象方法
关键词:interface
实现接口的关键词:implement

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

批改状态:合格

老师批语:没有显示,第一是检查有没有打印输出 语句, 第二是打断点, 用die()随意显示点东西, 确定代码执行到哪了
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学