欢迎光临
感谢一路有你

OOP面向对象基础-多态/魔术方法

__toString()

把对象当做字符串输出的时候自动调用

要求该对象必须返回一个子符串

作用: 用来调试

__invoke()

把对象当做函数去调用时 自动触发

__call __callStatic

__call($funName, $params)

当调用一个不存在的方法的时候自动调用

参1: 方法名称
参2: 参数 以数组形式

__callStatic($funName, $params)

当调用一个不存在的静态方法的时候自动调用

参1 : 不存在的静态方法名称
参2 : 属性

自动加载类

__autoload(他不是一个魔术方法 他是一个函数)

串行化与反串行化

serialize();串行化
unserialize();反串行化

__sleep() 串行化的时候自动调用 必须返回一个数组

__wakeup() 反串行化的时候自动调用

文件的写入与取出

php 的类型约束

只能用来约束参数的类型, 且只能约束为 <<数组>>或<<对象>>

多态

抽象类 :
1. 抽象类中有抽象方法和普通方法
1. 抽象类不能被实例化
3. 抽象方法: 抽象方法 没有方法体
3. 抽象类里面的抽象方法必须在子类中实现

接口

类中的接口 inferface 不是 api 应用接口

  1. 接口不能被实例化
  2. 接口中只 允许有抽象方法和常量
  3. 接口中的方法不能有方法体 抽象方法的abstract 必须省略
  4. 接口可以被继承 但是不能使用extends 必须使用implements
  5. 可以多继承
  6. 继承接口的子类必须重写方法

接口和抽象类的区别

  1. 抽象类里面的方法可以有普通方法,但是接口里面的方法必须都是抽象方法
  2. 抽象类中 可以有属性, 但是接口不能有
  3. 接口可以多继承, 抽象类不能

多种状态

子类可以继承父类, 可以重写父类的属性和方法

一类可以有多个子类,不同的子类之间,有不同的状态属性

这就是多态

不同的对象 做相同的事情, 得到不同的结果

未经允许不得转载:王明昌博客 » OOP面向对象基础-多态/魔术方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
隐藏
变装