Blogger Information
Blog 38
fans 1
comment 0
visits 28744
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
11月29日_抽象类和接口
fkkf467
Original
648 people have browsed it

一、抽象类

  • abstract 定义抽象方法或抽象类
  • 类中只要有一个抽象方法, 该类就应该声明为抽象类
  • 抽象类只能被继承,不能实例化,并且抽象方法必须在子类实现
    1. <?php
    2. abstract class Shop{
    3. public $name;
    4. public $price;
    5. public function __construct($name,$price)
    6. {
    7. $this->name = $name;
    8. $this->price = $price;
    9. }
    10. abstract public function getInfo($num);
    11. }
    12. class Computer extends Shop{
    13. // 构造方法不会自动继承, 必须手动重写
    14. public function __construct($name, $price)
    15. {
    16. parent::__construct($name, $price);
    17. }
    18. public function getInfo($num)
    19. {
    20. return $this->name . '的价格为:' . $this->price . ',购买数量为:' . $num . '台';
    21. }
    22. }
    23. $c = new Computer('小米笔记本',4599);
    24. echo $c->getInfo(3);
    25. ?>

二、接口

interface 定义接口
implements 类实现接口的关键字

  1. <?php
  2. interface User{
  3. public function role($role);
  4. public function right($right);
  5. }
  6. class Member implements User{
  7. public $name;
  8. public function __construct($name)
  9. {
  10. $this->name = $name;
  11. }
  12. public function role($role)
  13. {
  14. return $this->name . '是' . $role;
  15. }
  16. public function right($right)
  17. {
  18. return $this->name . '权限有' . $right;
  19. }
  20. }
  21. $m = new Member('猪小明');
  22. echo $m->role('会员') . '<br>';
  23. echo $m->right('去广告');
  24. ?>


三、总结

抽象类的两个特点:不能实例化、类中抽象方法,在子类中必须全部实现
如果不能将接口中方法全部实现就用抽象类来实现它
否则,就必须把接口中的方法全部实现
抽象和接口区别:
抽象可以有普通方法,成员变量。
接口不可以有普通方法,不可以有成员变量。

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