博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php静态和抽象
阅读量:4555 次
发布时间:2019-06-08

本文共 1824 字,大约阅读时间需要 6 分钟。

静态

1.在定义类时,类中声明的成员变量和成员方法,属于对象的。

2.当用关键字static修饰类或类中的变量和方法时,该成员变量和成员方法就属于类的。

3.静态成员可以不通过构造对象就直接调用。

4.静态方法不能直接调用普通成员

5.普通成员可以调用静态

下面用一个例子来解释一下

    class FenBi

      {
        public $length=10; //粉笔长度
        public static $color="红"; //粉笔颜色
        public static function test()
              {
                echo "静态成员方法".self::$color;    //静态成员的调用办法
              }
        public function ceshi()
        {
          echo self::$color;
          }
        }

$f = new FenBi();

$f->length; //普通成员调用方式
$f->ceshi();
FenBi::$color = "蓝色"; //静态成员的调用方式
FenBi::test();*/静态方法的调用方式

抽象

关键字:abstract
抽象类由于过于抽象了,所以不能被实例化,做为父类存在,可以被继承
抽象方法里面不能包含函数体,其具体功能在子类里面通过重写实现,如果子类不想实现,那么子类也必须是抽象的。
包含抽象方法的类一定是抽象类

  abstract class DongWu

    {
      public $name;
      abstract public function test(); //定义了一个抽象方法,但是这个方法不能有函数体
      }
    class Dog extends DongWu       //定义一个子类,继承了父类
        {
        public function test()    //重写了父类抽象方法,有函数体
                  {
                    echo "重写了";
                  }
        }
      $d = new Dog();
      var_dump($d);

接口(interface)

1.接口 就是极度抽象的类

2.接口里面没有成员变量
3.接口里面的所有成员函数全部为抽象的

4.接口的名字以I开头

5.一般未特意明确是面向对象里的接口,理解为API (application programing interface)不通过读源码而实现功能接口

  

      interface IUSB
            {            
              public function read(); //读的方法
              public function write(); //写的方法
              }

       class ShuBiao implements IUSB    //继承接口的关键字

              {
                public function read()    //子类重写实现接口的方法
                          {
                            echo "鼠标插入了";
                           }
                public function write()
                          {
                            echo "往鼠标写内容";
                          }
                }

        $s = new ShuBiao();

        $s->read();

转载于:https://www.cnblogs.com/du892294464/p/6740835.html

你可能感兴趣的文章
JavaScript 字符串(String) 对象
查看>>
How to use VisualSVN Server and TortoiseSVN to host your codes and control your codes' version
查看>>
微信小程序picker组件 - 省市二级联动
查看>>
Dynamics CRM 给视图配置安全角色
查看>>
Eclipse修改已存在的SVN地址
查看>>
(转)使用 python Matplotlib 库绘图
查看>>
进程/线程切换原则
查看>>
正则表达式语法
查看>>
20165301 2017-2018-2 《Java程序设计》第四周学习总结
查看>>
Vue的简单入门
查看>>
urllib 中的异常处理
查看>>
通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
查看>>
比较:I/O成员函数getline() 与 get()(第二种用法)的用法异同
查看>>
7.内部类(一)之详解内部类
查看>>
1.messager消息提示框
查看>>
C teaching
查看>>
分隔指定内容,提取章节数
查看>>
this point
查看>>
验证登录信息是否合法
查看>>
线程池
查看>>