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

抽象类、抽象方法以及接口

1.抽象类

  1. <?php
  2. //抽象类、抽象方法
  3. //类中只要有抽象方法。就需要声明为抽象类
  4. //抽象类定义 abstract
  5. abstract class Rule{
  6. public $name;
  7. public $exp;
  8. public function __construct($name = '',$exp=0){
  9. $this->name =$name;
  10. $this->exp =$exp;
  11. }
  12. //吃饭
  13. public function chifan(){
  14. echo '<br>我正在吃饭';
  15. }
  16. //打怪
  17. abstract public function daguai();
  18. //升级
  19. abstract protected function shengji();
  20. //只要类中有抽象方法 ,类就要声明为abstrat ,抽象方法不能被声明为私有 ,抽象方法没有方法体,不用写大括号。
  21. }
  22. //抽象类不可实例化、必须被扩展类继承之后完成 抽象类中定义的所有抽象方法后才能被实例化
  23. class Role extends Rule{
  24. public function __construct($name = 'xiaoA'){
  25. parent::__construct($name);
  26. }
  27. //父级抽象类的具体方法应该可以直接使用
  28. //实现抽象方法
  29. public function daguai($boss= 9999,$skill= 1000){
  30. while($boss>0){
  31. $boss = $boss - $skill;
  32. echo '<br>继续攻击<br>';
  33. }
  34. echo '<br>胜利<br>';
  35. }
  36. public function shengji($exp=10000,$level=1){
  37. $up = $level + $exp/1000;
  38. echo '<br>恭喜升到'.$up.'级<br>';
  39. }
  40. }
  41. $A = new Role('littleA');
  42. echo '当前玩家'. $A->name. '经验为' . $A->exp;
  43. $A->chifan();
  44. $A->daguai();
  45. $A->shengji();

执行结果:

2.接口

  1. <?php
  2. //接口定义一种类的规定 方法必须是public
  3. //interface
  4. interface IPhone{
  5. //接口中可以有方法和类常量,而方法不需要有方法体
  6. //定义常量
  7. const NAME = 'iphone';
  8. const AI = 'siri';
  9. public function call($number);
  10. public function camera($SOC);
  11. public function music();
  12. }
  13. //一个类来实现接口中定义的方法
  14. class IphoneX implements IPhone{
  15. public $screen;
  16. public $charge;
  17. public function call($number){
  18. echo '用iPhoneX打电话给'.$number;
  19. }
  20. public function camera($SOC){
  21. echo '用iPhoneX照相';
  22. }
  23. public function music(){
  24. echo '用Airpods听音乐';
  25. }
  26. }
  27. class Iphone8 implements IPhone{
  28. public $screen;
  29. public $charge;
  30. public function call($number){
  31. echo '用iPhone8打电话给'.$number;
  32. }
  33. public function camera($SOC){
  34. echo '用iPhone8照相';
  35. }
  36. public function music(){
  37. echo '用iPhone8听音乐';
  38. }
  39. }
  40. $iphone8 = new Iphone8;
  41. $iphoneX = new IphoneX;
  42. echo $iphone8->music();
  43. echo '<br>';
  44. echo $iphoneX->music();

执行结果:

总结:学了抽象类,接口的定义。其中抽象方法不能为私有,必须能被子类访问,接口的方法必须是public。子类需要实现抽象类定义的全部方法才能被实例化。

手写:

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