前面已经说过相关的php5面向对象之面向对象基础,现在我们在进阶的介绍一下面向对象进阶。
类的目的就是让程序更容易“扩充和维护”。
类的继承,访问控制,类的重写,类的 重载 等等相关的知识。
自行车有什么特征(属性)? 两个轱辘、 一个车座、 两个脚蹬子、 有颜色
自行车有什么动作(方法)? 骑行、 刹车
折叠自行车 有什么特征(属性)?两个轱辘、一个车座、两个脚蹬子、有颜色
折叠自行车有什么动作(方法)?骑行、刹车、折叠
电动自行车有什么特征(属性)?两个轱辘、一个车座、两个脚蹬子、有颜色、电池一块
电动自行车有什么动作(方法)?骑行、刹车、电动行驶
上面的三个例子,说明了自行车、折叠自行车、电动自行车特性。
我们描述折叠自行车和电动自行车时,他们都和自行车一样。
PHP5 中的继承
-
继承是面向对象最重要的特点之一,就是可以实现对类的复用。
-
通过“继承”一个现有的类,可以使用已经定义的类中的方法和属性。
-
继承而产生的类叫做子类。
-
被继承的类,叫做父类,也被成为超类。
-
PHP 是单继承的,一个类只可以继承一个父类,但一个父类却可以被多个子类所继承。
-
从子类的角度看,它“ 继承( inherit , extends) ”自父类;而从父类的角度看,它“派
-
生( derive) ”子类。它们指的都是同一个动作,只是角度不同而已。
-
子类不能继承父类的私有属性和私有方法。
-
在 PHP5 中类的方法可以被继承,类的 构造函数 也能被继承。
私有变量和方法不被继承
-
私有变量不被继承,私有方法也不被继承。
-
另外一种说法,私有变量和属性被继承了,但不能被调用。
-
无论怎么说,都不能调用父类的私有属性和私有方法。
在 PHP5 中,可以在类的属性和方法前面加上一个修饰符( modifier),来对类进行一些访问
上的控制。
重写( override )
-
如果从父类继承的方法不能满足子类的需求,可以对其进行改写, 这个过程叫方法的覆盖( override),也称为方法的重写。
-
当对父类的方法进行重写时,子类中的方法必须和父类中对应的方 法具有相同的方法名称, 在 PHP5 中不限制输入参数类型、参数数量 和返回值类型。(这点和 JAVA 不同)
-
子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权 限。
-
声明方法时,如果不定义访问权限。默认权限为 public。
当然还有更多的知识,这就需要你更认真的学习php的类,一门语言的出现并且热门起来,一定有更深刻的意义,只有学习了才知道!