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

posted @ 2017-04-20 21:12  雾若晨曦  阅读(335)  评论(0编辑  收藏  举报