Blogger Information
Blog 40
fans 0
comment 1
visits 24376
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
第8章 0203-静态绑定,接口与抽象类,学习心得、笔记(抽象类、继承、实现接口、方法重写、trait)
努力工作--周工--Robin
Original
682 people have browsed it

示例运行截图

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. }

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:总结的不错
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments