面向对象是一种编程思想,通过封装、继承、多态使程序利于维护、扩展、重用。
PHP同一个类的实例对象只是类属性值不同,类方法是共用的。也可以这么理解,行为一样,具体属性值不一样。
封装:明确标识出允许外部可访问的属性和方法,或者叫接口。目标是使系统中的每一部分都尽可能独立,外部不需要关心每个部分的内部实现细节。
继承:其一,使子类完全继承父类的属性和方法,并根据自身需要修改和扩展,增加了代码的重用和灵活性。其二,接口上子类完全兼容父类。第二种含义又叫“接口继承”,在程序设计上,叫做归一化。
多态:字面意思是“多种状态”。接口的多种不同的实现方式即为多态,简单的实现多态就是重写父类方法。多态实际上是依附于继承的两种含义,多态实质上是继承的实现细节。
怎样用好面向对象?
- 面向接口编程,而不是面向实现编程。通过对外提供最小且必须的接口,使得类尽可能独立,达到解耦和复用的目的。
- 封装变化的概念。
- 组合优于继承。过分依赖继承,可能导致有局限性的结构,或产生大量重复代码。