美文网首页PHP 面向对象详解
PHP 面向对象 (九)面向对象三大特征

PHP 面向对象 (九)面向对象三大特征

作者: 一句话儿 | 来源:发表于2020-01-12 18:36 被阅读0次
抽象性  将通用的数据和方法抽离出来形成一个抽象类

多态性 
    php本身就是天生的多态语言
    当一个函数接收到不同对象时,会自动的判断并调用对应的方法
    多态利于类的维护和扩展

继承性
    作用: 将通用的数据和方法抽离出来形成一个抽象类, 解决代码复用,便于维护
    方法重载
        php不能使用传统的重载方法
        传统的方法重载
        function getName($name)
        function getName($name, $params)
    属性重载
        当给不存在的属性赋值时,类虎自动动态创建相对应的属性
        禁止属性重载,public function __set(){} 方法里面什么都不写
    方法重写
        要求方法名和参数都一样,参数类型也一样,子类不能缩小父类访问权限
    属性重写
        子类不能缩小父类访问权限
    继承本质
        子类与父类之间建立了查找关系
抽象类
当方法不确定具体实现功能的时候,可以定义为抽象类
细节
    抽象类不能实例化
    抽象类可以有非抽象属性和方法
    含抽象方法的类必须定义为抽象类
    如果一个非抽象类继承了抽象类,必须实现抽象类的所有方法
接口
作用:解决抽象类单一继承的问题,可以多继承,解决代码复用问题
细节
    接口中的方法都是抽象方法,但不需要使用abstract来修饰
    需实现接口中所有的抽象方法
    接口中不能有普通成员属性,但是可以有常量
    接口可以多继承
    面向接口编程 (后面补充)
final关键字
作用:保护类不被继承,及类方法不被重写
细节
    当类不希望被继承时,可以定义为final类
    当类方法不希望被重写时,可以定义为final方法
    final不能修饰成员属性
    final方法不能被重写,但是可以被继承
面向对象编程的相关技术
    对象克隆技术 防止克隆,定义私有的魔术方法__clone()
    对象遍历 foreach
    php的内置标准类 new stdClass
    数据类型转对象和对象转数组的说明 
        (object)$name; 强制类型转换
        (array)$obj;对象转数组后,私有变量还是不能直接访问
    对象序列化和反序列化
        序列化 serialize() 对象转换为字符串 会调用 __sleep()魔术方法
        反序列化 unserialize() 已序列化的字符串转对象  会调用 __wakeup()魔术方法
细节
    类中只有属性和方法
    普通成员方法可以访问静态属性也可以访问非静态属性
    对象 instanceof 类名  用于判断对象是不是某个类的对象实例
    对象的连用
    所有都是基于一次请求操作

相关文章

  • PHP 面向对象 (九)面向对象三大特征

  • 面向对象

    面向对象方法概论 对象、结构 概念呢 特征 1.1 什么是面向对象 面向对象方法的基本思想 对象 属性-静态特征 ...

  • Java学习day-07:面向对象

    一、面向过程和面向对象 1.面向对象与面向过程的区别: 面向对象具有三大特征;封装,继承,多态;面向对象与面向过程...

  • Java 工程师成神之路 | 2019正式版

    摘要:什么是面向对象 基础篇 01面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基...

  • 阿里P8资深架构师耗时一年整理19年Java工程师成神之路

    1、基础篇 01:面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

  • Java 工程师成神之路 | 2019正式版

    一.基础篇 01 面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

  • Java 工程师成神之路

    一、基础篇 01.面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

  • Java 工程师成神之路 | 2019正式版

    1 基础篇 01面向对象 → 什么是面向对象面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台无关...

  • Java基础(二)

    面向对象特征;重载和重写;静态绑定和动态绑定;抽象类和接口;包。 面向对象的特征 面向对象的三个基本特征是:封装、...

  • 面试 | java基础

    面向对象 1、面向对象特征? 封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成...

网友评论

    本文标题:PHP 面向对象 (九)面向对象三大特征

    本文链接:https://www.haomeiwen.com/subject/jikwactx.html