博客列表 >学习 PHP 的抽象类与接口

学习 PHP 的抽象类与接口

PHP新手学习记录
PHP新手学习记录原创
2020年05月03日 14:21:03788浏览

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

  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();

输出结果:

上一条:PHP流程控制下一条:PHP运算符
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议