PHPer的面向对象特性。

  首先面向对象是什么? 他是一种程序设计规范,也是一种程序开发方法。提高软件的重用性丶灵活性和可扩展性。

  在面向对象的核心思想是对象,封装,可重用性和可扩展性。是一种更高级,更抽象的思维方式。类在狭义上来讲是面向对象思想的具象化,类是什么呢? 类定义了一系列的属性发放,这些方法可以对属性进行加工。类与对象的关系类似服务和被服务的关系。在php中对象就是属性和方法组成的。

对象和数组的结构十分相似,两者的区别是对象有个指针,指向他所属的类。

在php的面向对象的概念中重要的是魔术方法和命名空间 自动加载等。魔术方法我就不再一一赘述,有一些基础的朋友对魔术方法应该都不陌生,命名空间是一种封装事务的方法,在php中是为了防止php内部的方法常量冲突,二是为了创建一个别名提高代码可读性,与php命令空间类似的就是python的包的概念。自动加载的话在php中主要实现是spl_autoload_register这个函数,正是因为有了命名空间和自动加载才让php生态发展出了composer的包机制,进而保证任意引入第三方类库。

继承和多态是面向对象的重要概念,一个是类级别的复用 一个是方法级别的复用,在类复用中有两种方式,一种是继承一种是组合, 组合像是需要的关系,而继承则是像的关系。而组合偏重整体和局部, 继承偏重父子关系,多态 顾名思义 ,同一方法 不用形态,因为php 本身是弱类型语言在多态方面体验不是特变明显,因此 如果子类继承父类并且 不同子类方法相同,在调用子类同一方法是产生结果不同就属于多态的一种。区分是否多态在于对象是否属于同一类型,把他们看作同一类型,调用相同函数, 返回结果不同就是多态。

你可能感兴趣的:(PHPer的面向对象特性。)