zoukankan      html  css  js  c++  java
  • php静态和抽象

    静态

    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();

  • 相关阅读:
    Java面试——从JVM角度比较equals和==的区别
    Java线程和多线程(三)——线程安全和同步
    玩转Android之MVVM开发模式实战,炫酷的DataBinding!
    写点什么好呢2? 钱、事业、婚姻、人生意义
    写点什么好呢2? 钱、事业、婚姻、人生意义
    大型网站架构技术一览
    【树莓派】GSM900模块
    【Latex】数学公式排版
    【MYSQL】导入中文后乱码问题
    【R】shiny界面
  • 原文地址:https://www.cnblogs.com/du892294464/p/6740835.html
Copyright © 2011-2022 走看看