Blogger Information
Blog 11
fans 0
comment 0
visits 9124
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
学习 PHP 的抽象类与接口
PHP新手学习记录
Original
785 people have browsed it

类继承的三大功能:继承、重写、扩展

  1. // 父类
  2. class Book
  3. {
  4. public $title = '三字经';
  5. protected $price = '20';
  6. private $isbn = '123-456';
  7. public function show()
  8. {
  9. echo "《 {$this->title} 》,售价:{$this->price} 元,ISBN:{$this->isbn}。";
  10. }
  11. }
  12. // 继承
  13. class Book1 extends Book
  14. {
  15. // 重写属性
  16. public $title = '千字文';
  17. protected $price = 30;
  18. private $isbn = '456-123';
  19. // 属性扩展
  20. // 静态属性不能通过已实例化的对象访问,静态方法可以访问
  21. public static $author = '周兴嗣';
  22. // 重写方法
  23. public function show()
  24. {
  25. // 引用父类中已有的方法
  26. echo parent::show() . '作者:' . self::$author;
  27. }
  28. // 扩展方法,增加父类的功能
  29. public static function show1()
  30. {
  31. echo ' 《千字文》作者是 ' . self::$author;
  32. }
  33. }
  34. $book = new Book();
  35. echo $book->show() . '<br><hr>';
  36. $book1 = new Book1();
  37. echo $book1->show() . '<hr>';
  38. Book1::show1();
  39. echo '<hr>';

输出结果:

抽象类的作用与实现

  1. // 抽象类(设计)不能被实例化,至少要有一个抽象方法
  2. abstract class Phone
  3. {
  4. protected $system = 'ios';
  5. protected $brand = 'apple';
  6. // 抽象方法,没有方法体,其功能在子类中实现
  7. abstract protected function display();
  8. }
  9. // 工作类(实现)
  10. class IPhone extends Phone
  11. {
  12. protected $network = '5G';
  13. public function display()
  14. {
  15. return "{$this->brand} 的网络制式是 {$this->network}";
  16. }
  17. }
  18. $iphone = new IPhone();
  19. echo $iphone->display(); // apple 的网络制式是 5G

接口的基本语法

  1. // 接口语法
  2. interface User
  3. {
  4. // 接口属性
  5. const USERTYPE = 'VIP';
  6. // 接口方法,必须是抽象方法
  7. public function getDiscount();
  8. }
  9. // 工作类
  10. class VipUser implements User
  11. {
  12. private $discount = 0.8;
  13. // 必须实现接口中的方法
  14. public function getDiscount()
  15. {
  16. return " 用户的折扣率是:{$this->discount}";
  17. }
  18. }
  19. $vipuser = new VipUser();
  20. echo User::USERTYPE . $vipuser->getDiscount();

输出结果:

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
Author's latest blog post