php面向对象(四)

php中的重载技术

  通常面向对象语言的重载技术
  在一个类中有多个同名方法,每个方法的参数不同,这种现象称为重载。

  参数的不同:个数不同,类型不同,顺序不同。
  在php中,一个类中不可以定义多个同名方法(这是直接语法错误),因此php重载有特殊的意义;


  属性重载:如果使用一个不存在的属性,就会自动去调用预先设计好的某个方法;


      取值:$v1 = 对象->属性;======如果不存在======》自动调用类中的__get()方法
      赋值:对象->属性=值;======如果不存在========》自动调用类中的__set()方法
      判断是否存在:issrt(对象->属性;)==如果不存在=》自动调用类中的__isset()方法
      销毁:unset(对象->属性;)======如果不存在===》自动调用类中的__unset()方法

      //前提是类中要预先定义好这些 
      当使用一个对象(类)调用一个不存在的静态方法时,会自动去调用预先定义好的:__callStaric 方法,其中必须。带两个参数。

      __get(), __set(), __isset(), __unset(), __call(), __callstatic();这几个方法称为魔术方法。

    方法重载:如果使用一个不存在的方法,就会自动调用类中预先定义好的某个方法处理;

接口interface

  接口是抽象类的特殊例子:有接口常量,还有抽象方法。

  接口中只有最简单的特性信息:接口常量(就是常量),抽象方法(只有方法头,下级去实现)

  接口的作用:接口可以看做抽象类的更高层的抽象规范,不考虑接口常量的话,相当于给下级做什么事,怎么做下级自己去完成。

猜你喜欢

转载自www.cnblogs.com/sword082419/p/9151880.html