面向对象(静态,抽象,接口)--2017-04-20

1、静态:

静态成员:属于类

普通成员:属于对象

关键字:static

class FenBi

{

      

       public $length=10;          //  普通成员

       public static $color="red";    //  静态成员

    public static function test()    //  静态成员方法

       {

              echo"静态成员方法".self::$color;   

              echo"静态成员方法".FenBi::$color;               

              echo $this->length;     //出错;静态成员方法不能调用普通成员变量

              }

        public function ceshi()        //  普通成员方法

       {

              echo self::$color;      // $f->ceshi();普通成员方法可以调用静态成员变量

              }    

       }

       $f= new FenBi();

       $f->length;         //普通成员的调用方法

       FenBi::$color;      //静态成员的调用方法用双冒号调;不用造对象,可以直接调用

       FenBi::test();           

2、抽象

       抽象类:比原来的类更加抽象,不能实例化,可以被继承;主要作为父类使用

 关键字:abstract

注意:

(1)抽象方法里面不能包含函数体,其具体功能在子类里面通过重写实现

  方法:子类要么做成抽象类;要么实现父类的抽象方法

(2)包含抽象方法的类一定是抽象类

       abstract class Dw

       {

              public $name;

              abstract function test();  //抽象方法不能有函数体,所以去掉大括弧  

                                                 }

       class Dog extends Dw

       {

              public function test()

              {

                     echo "adad";

                     }

              }

       $d=new Dw();//会报错   不能实现实例化

       $dd=new Dog();

       var_dump($dd);

       作用: 用于限制或规范下面人员的行为

3、接口

极度抽象的类      

接口里面不能写成员变量;

接口里面所有的成员方法全部为抽象的

interface IUSB                 //类名定义方法:以大写i开头

{

       public function read();

       public function write();   //默认抽象类;不用写

      

       }

class ShuBiao implements IUSB

{

       public function read()

       {

              echo "哈哈";

              }

       public function write()

       {

              echo "嘿嘿";

              }

      

       }

       $s=new ShuBiao();

       $s->read();

       $s->write();

 提到接口,一般会有两种情况:

1、面向对象里       

2、API(Application Programming Interface 应用程序编译接口)里的网络服务接口

posted @ 2017-04-20 11:07  陈观爱  阅读(192)  评论(0编辑  收藏  举报