Blogger Information
Blog 23
fans 0
comment 3
visits 15291
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
11月29日_抽象类、抽象方法以及接口 - 九期线上班
木易
Original
644 people have browsed it

1. 抽象类

  1. <?php
  2. abstract class a{
  3. public $name;
  4. public function __construct($name)
  5. {
  6. $this -> name =$name;
  7. }
  8. public function af(){
  9. echo $this -> name .'111';
  10. }
  11. // 抽象方法
  12. abstract public function aff();
  13. }
  14. //抽象类不能实例化,只能继承
  15. class b extends a{
  16. public function aff(){
  17. echo $this ->name;
  18. }
  19. }
  20. //调用子类,进行实例化,调用成员方法和成员变量
  21. $a =new b('欧阳克');
  22. $a -> af();
  23. echo '<br>';
  24. $a -> aff();
  25. abstract class Person{
  26. protected $name;
  27. protected function __construct($name='欧阳克')
  28. {
  29. $this -> name =$name;
  30. }
  31. public function getName(){
  32. return $this->name;
  33. }
  34. abstract protected function setName($v);
  35. }
  36. class stu extends Person{
  37. public function __construct($name = '欧阳克')
  38. {
  39. parent::__construct($name);
  40. }
  41. public function setName($v)
  42. {
  43. $this ->name = $v;
  44. }
  45. }
  46. $s = new stu('猪哥');
  47. echo 'PHP中文网创始人'. $s->getName().'<br>';
  48. $s ->setName('灭绝师太');
  49. echo '前端讲师'.$s->getName().'<br>';
  50. echo '<hr>';

2. 接口

  1. <?php
  2. interface V{
  3. const LXR ='欧阳克';
  4. public function setFuel($fuel);
  5. public function setPurpose($Purpose);
  6. }
  7. class Car implements V{
  8. public $fuel;
  9. public $Purpose;
  10. //原来这里加了个构造方法但是系统报错了,删去后就解决了但是不是很明白为什么?
  11. // 必须实现的接口方法
  12. public function setFuel($fuel){
  13. $this -> fuel=$fuel;
  14. }
  15. public function setPurpose($Purpose)
  16. {
  17. $this -> Purpose=$Purpose;
  18. }
  19. public function getInfo(){
  20. return '用'.$this -> fuel.'汽油然后'.$this->Purpose;
  21. }
  22. }
  23. $car = new Car;
  24. $car ->setFuel('98#');
  25. $car ->setPurpose('一路向北');
  26. echo $car -> getInfo();

个人总结

抽象类:只能被继承,不能实例化,必须在子类实现
abstract:定义抽象方法、抽象类
实现抽象方法的子类方法可见性不能低于抽象方法原定义
接口:interface指定某个类必须实现的方法,但不需要定义方法
仅出现:方法与常亮,必须是public方法
implements:类实现接口的关键字
抽象和接口的区别:
抽象可以有普通方法,成员变量
接口不可以有普通方法,不可以有成员变量

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