搜索
博主信息
博文 40
粉丝 0
评论 1
访问量 31310
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
第8章 0203-静态绑定,接口与抽象类,学习心得、笔记(抽象类、继承、实现接口、方法重写、trait)
努力工作--周工--Robin
原创
854人浏览过

示例运行截图

1、测试Demo代码

  1. require 'Loader.php';
  2. //"Person(人类)抽象类作父类,Teacher(老师)类, Student(学生)类为子类";
  3. //"老师类, 学生类,通过继承父类,都有通用属性name、age,和show()方法";
  4. //"------老师类通过实现iTalk接口,拥有talk()说英文,这个独有方法";
  5. //"------学生类通过实现iPlay接口,拥有playGame()玩游戏,这个独有方法";
  6. //"------老师类通过使用use trait T2,拥有skill(),独有新技能";
  7. //"------学生类通过使用use trait T1,拥有skill(),独有新技能";
  8. $tec = new Teacher("刘德华", 55);
  9. $stu = new Student("贾玲", 30);
  10. echo "------老师类,例程演示结果-----------------------------", "<br>";
  11. $tec->show();
  12. $tec->talk();
  13. $tec->skill();
  14. echo "------学生类,例程演示结果-----------------------------", "<br>";
  15. $stu->show();
  16. $stu->playGame();
  17. $stu->skill();

2、Person父类(抽象类)代码

  1. //人类,抽象类
  2. abstract class Person {
  3. // 类成员: 属性, 方法
  4. // 属性: 变量
  5. protected $name;
  6. protected $age;
  7. // 构造方法
  8. public function __construct($name, $age)
  9. {
  10. $this->name = $name;
  11. $this->age = $age;
  12. }
  13. // 抽象方法
  14. abstract public function show();
  15. }

3、Teacher类代码

  1. require "Loader.php";
  2. class Teacher extends Person implements iTalk {
  3. // 类成员: 属性, 方法
  4. // 属性: 变量, 构造方法, 继承父类的
  5. //学生类,老师类都有的show()方法
  6. public function show()
  7. {
  8. echo "我是一名老师,我叫{$this->name},我已经{$this->age}岁了...", "<br>";
  9. }
  10. //重写接口iTalk,talk()方法,是老师类特有方法
  11. public function talk()
  12. {
  13. echo "我可以用". Teacher::LANGUAGE . "进行流利沟通...", "<br>";
  14. }
  15. //use trait T2,让老师类新方法skill(),打印“8级证书...”
  16. use T2;
  17. }
  18. trait T2
  19. {
  20. public function skill()
  21. {
  22. echo "我已经拥有国家钢琴等级,专业8级证书...", "<br>";
  23. }
  24. }

4、Student类代码

  1. require 'Loader.php';
  2. class Student extends Person implements iPlay {
  3. // 类成员: 属性, 方法
  4. // 属性: 变量, 构造方法, 继承父类的
  5. //学生类,老师类都有的show()方法
  6. public function show()
  7. {
  8. echo "我是一名学生,我叫{$this->name},我已经{$this->age}岁了...", "<br>";
  9. }
  10. //重写接口iPlay,playGame()方法,是学生类特有方法
  11. public function playGame()
  12. {
  13. echo "我玩". Student::GAME . "游戏,很厉害的...", "<br>";
  14. }
  15. //use trait T1,让学生类有新方法skill(),打印“跆拳道...”
  16. use T1;
  17. }
  18. trait T1
  19. {
  20. public function skill()
  21. {
  22. echo "我的刚学的技能是:跆拳道...", "<br>";
  23. }
  24. }

5、iTalk接口代码

  1. interface iTalk {
  2. const LANGUAGE = "英语";
  3. public function talk();
  4. }

6、iPlay接口代码

  1. interface iPlay {
  2. const GAME = "超级玛丽奥";
  3. public function playGame();
  4. }

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

批改状态:合格

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

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

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