博客列表 >1129作业抽象类接口-PHP培训第九期线上班

1129作业抽象类接口-PHP培训第九期线上班

淡月
淡月原创
2019年12月03日 17:55:54573浏览

一.抽象类

1.abstract:定义抽象类

2.类里面只要有抽象方法就要定义为抽象类

3.抽象类只能被继承,不能直接实例化

4.抽象方法必须在子类实现

5.抽象类的子类的可见性不能低于父类

6.抽象类的是public,子类只能是public.抽象类方法protected,子类只能是public/private。

7.子类继承父类(抽象),必须把抽象类的抽象方法重写一遍,用parent::来调用父类抽象方法。否则需手工重写。

  1. <?php
  2. //抽象类
  3. //类中只要有抽象方法 就声明为抽象类
  4. //抽象类只能被继承 不可以被实例化
  5. abstract class P{
  6. // protected 受保护的 只能本类和子类 父类中访问
  7. protected $name;
  8. public function __construct($name)
  9. {
  10. $this->name = $name;
  11. }
  12. public function getname(){
  13. return $this->name;
  14. }
  15. abstract public function setname($value);
  16. }
  17. class S extends P{
  18. public function __construct($name){
  19. parent::__construct($name);
  20. }
  21. public function setname($value)
  22. {
  23. $this->name = $value;
  24. }
  25. }
  26. $s = new S('33703259');
  27. echo $s->getname();
  28. echo '<hr>';
  29. $s->setname('WJF');
  30. echo $s->getname();

二.接口

1.接口中仅允许方法和常量

2.interface:指定某个类必须实现的方法,但不需要定义具体实现过程。类似抽象类

3.接口的方法为空

4.接口是类的代码模版,可以父子继承关系

5.implements 是实现接口的关键字

6.接口中的方法必须是抽象方法

7.如果仅实现接口中的部分方法,清用抽象类

8.接口不可以有普通方法和成员变量

9.接口可以同时继承和实现(先继承后实现),多个接口用逗号

  1. <?php
  2. //接口
  3. //指定某个类重必须实现的方法 接口中不需要定义方法的具体实现过程
  4. //接口只允许出现 方法 类变量
  5. //可见性必须为 public 方法体必须为空
  6. interface V{
  7. public function A($A);
  8. public function B($B);
  9. }
  10. class C implements V{
  11. public $A;
  12. public $B;
  13. public function A($A){
  14. $this->A = $A;
  15. }
  16. public function B($B)
  17. {
  18. $this->B = $B;
  19. }
  20. public function DIY(){
  21. return 'A值: ' . $this->A . 'B值: ' . $this->B . 'PHP中文网';
  22. }
  23. }
  24. $c = new C();
  25. $c->A('aaaaa');
  26. $c->B('BBBBB');
  27. echo $c->DIY();

3.手抄作业


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