• 抽象类,接口,魔术方法


    抽象类

      关键字:abstract

      含有抽象方法,(抽象方法必须包含在抽象类里,但抽象类不一定含有抽象方法)。

      抽象方法:未被实现的方法,(加 abstract   ,子类继承必须实现该方法)。

    abstract class Usb{
       public function load(){
          echo "usb is loading";
       }
       abstract public function unload();//抽象方法
    }
    class Upan extends Usb{
        public function unload(){//子类中必须实现父类的抽象方法,否则报错
            echo "usb is unloading";
        }
    }

    接口

      关键字:interface

      只含有抽象方法,不能含有普通方法 (接口中的方法都是抽象方法,所以不用写abstract)

      继承用implements

    //接口
    interface Usb1{
       public function load();
    }
    //接口扩展
    interface Usb2 extends Usb1{//接口也可以继承其他的接口
       public function run();
    }
    class Upan1 implements Usb2{
        public function load(){
            echo "usb is load";
        }
        public function run(){
            echo "usb is run";
        }
    }

    魔术方法:

      __construct  构造方法

      __destruct  析构方法

      __call    当调用不存在或无权访问的方法时,会自动调用该方法

        class Parents{
            //call()必须带两个参数,第一个为调用的不存在的方法名,第二个为方法里的参数 数组。
            public function __call($i,$j){
                echo '不存在'.$i;
                var_dump($j);
            }
        }
        $p1 = new Parents();
        $p1->b('abc');

      

      __get    当调用无权访问的属性时,自动调用该方法

        必须带一个参数,为不存在的属性名

      __set    类中某属性,对象无权操作(即不能设置值)时,自动调用该方法

        必须带两个参数,分别为无权操作的属性名,设置的值。

      __isset   当用isset()判断一个属性或方法存在与否时,自动触发__isset()

        必带一个参数,为变量名

        class Parents{
            private $a;
            public function __isset($i){
                echo'无权判断变量是否存在'.$i;            
            }
        }
        $p1 = new Parents();
        $p2=isset($p1->a);

      __unset    当用unset()删除一个属性或方法时,自动触发__unset()

        必带一个参数,为变量名

      __toString   调用这个类时会执行这个函数,return 输出这个类的说明。

  • 相关阅读:
    【原创】今天发现CSS上的一点使用FLoat要注意的地方(FireFox+IE)
    HTTP/1.1 协议 810 持久连接( Persistent Connections)
    Javascript attachEvent传递参数的办法
    Keycode对照表
    JS正则表达式详解[收藏]
    Javascript控制剪贴板大全
    多站点整合—单点登录简单方案
    Stream 和 byte[] 之间的转换
    用CSS样式如何制作圆角的详细教程
    FireFox下为元素附加事件并传递参数-addEventListener attachEvent Pass parameters to eventfunction
  • 原文地址:https://www.cnblogs.com/SSs1995/p/9350519.html
Copyright © 2020-2023  润新知