PHP的面向对象

0 阅读2分钟
  1. 什么是面向对象(oop)?

    面向对象是一种编程思想,它将程序中的数据和操作方法封装成一个对象并通过对象之间交互和消息传递来完成程序功能。主要是区别于面向过程:把程序分成几个步骤,第一步执行、第二步执行。。。执行完成的流程。

2.面向对象和面向过程的优缺点

面向过程:

        优点:开发步骤明确、条理清晰、便于节点的调试分析,执行效率高。

        缺点:需要深入分析需求、把繁杂的客户要求整理成一个个的流程然后进行开发,需要大量的需求分析时间。不同需求的流程之间没有通性,复用性较低,如果需求较复杂开发就会变成一个繁重的工作。

面向过程:

        优点:1).易维护:代码结构固定,每一个方法执行不同的功能,需求更改时只需要修改其中的某一个或者几个方法即可

                  2).易扩展:由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低

                  3).复用性:封装的不同的类都是完成单独的一个功能,不是一个流程,通用性就会很高。

        缺点:1).没有一个直观的开发流程,开发的难度较高

                2).类的封装没有一个行之有效的标准,很容易出现使用面向对象的思想开发出来面向过程的代码,即牺牲了执行效率,又没有很好的扩展和复用性。

            3).对于明显的过程性需求不适合。

3.类的定义(关键词class)

图片

4.继承

图片

5.重写父类方法,重写后,执行结果变为了222。

图片

6.抽象性

1)、任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。

2)、定义为抽象的类不能被实例化。

3)、被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。

4)、继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护的,那么子类中实现的方法就应该声明为受保护的或者公有的,而不能定义为私有的

图片

7.静态方法,不需要示例直接可以调用

图片

8.final关键词,子类无法重写,重写报错

图片

图片

9.面向对象和面向过程效率对比,10万次的循环,面向对象会多用时0.06秒

图片

图片