您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > PHP5面向对象初步-part2
PHP面向对象1Createdby刀客羽朋第二章PHP5面向对象进阶10月27日,家里添了一个男孩,生活变的忙碌起来。照顾小宝宝是件辛苦的事情,也更明白父母的辛苦。工作之余,继续写起来时间越来越紧张。祝老婆早日康复,祝我的小宝健康成长,祝父母身体健康。如果看到代码有什么问题。可以到phpchina.com我的博客留言给我。。再次感谢@hotmail.com刀客羽朋石家庄2006-11-19PHP面向对象2Createdby刀客羽朋目录2.1类的继承..........................................................................................................................3什么是继承.......................................................................................................................3PHP5中的继承................................................................................................................5继承的简单例子...............................................................................................................6构造函数的继承...............................................................................................................8私有变量和方法不被继承...............................................................................................92.2访问控制...........................................................................................................................10Private的访问权限.........................................................................................................10protected的访问权限......................................................................................................11public的访问权限...........................................................................................................122.3重写(override)..........................................................................................................13重写方法与访问权限.....................................................................................................15重写时的参数数量.........................................................................................................16构造函数重写.................................................................................................................172.4this关键字......................................................................................................................18局部变量和全局变量与$this关键字.........................................................................19用$this调用对象中的其它方法.....................................................................................20使用$this调用构造函数.................................................................................................21$this到底指的什么?...................................................................................................21通过$this传递对象.....................................................................................................222.5parent::关键字...............................................................................................................23通过parent::调用父类方法.............................................................................................23父类的private属性..........................................................................................................242.5重载Overload...............................................................................................................29在PHP5中不支持重载。..............................................................................................292.7实例..................................................................................................................................31PHP面向对象2.1类的继承什么是继承前面说过,面向对象的思想和我们的生活是息息相通的。我们先分析一个生活中的例子:自行车、折叠车、电动车的关系。例1:自行车有什么特征(属性)?两个轱辘一个车座两个脚蹬子有颜色自行车有什么动作(方法)?骑行刹车折叠自行车有什么特征(属性)?两个轱辘一个车座两个脚蹬子有颜色折叠自行车有什么动作(方法)?骑行刹车折叠电动自行车有什么特征(属性)?两个轱辘一个车座两个脚蹬子有颜色电池一块电动自行车有什么动作(方法)?骑行刹车电动行驶上面的三个表格,说明了自行车、折叠自行车、电动自行车特性。我们描述折叠自行车和电动自行车时,除红色标注的部分,都和自行车一样。3Createdby刀客羽朋PHP面向对象我们尝试用另外一种方式,建立模型的方式来描述一次。例2:自行车有什么特征(属性)?两个轱辘一个车座两个脚蹬子有颜色自行车有什么动作(方法)?骑行刹车折叠自行车有什么特征(属性)折叠自行车和自行车有相同的属性折叠自行车有什么动作(方法)折叠自行车具有自行车的所有方法。增加了折叠方法。电动自行车和自行车有相同的属性和方法。增加了电池一块增加了电动行驶的方法。这次的描述变简单了,只需要将增加的内容填写上去。关于自行车的描述被复用了。仔细再观察对自行车的描述,我们发现上面三个自行车都缺少了一个重要的属性”车主架”。在例1中,我们要在三个描述中分别添加”车铃铛”,这个属性。在例2中,我们只要在自行车的描述中加入属性“车铃铛”,另外两个描述不用变化就完成内容的添加。同样,动作(方法)的变化也很容易。感觉到了什么了么?它让我们的描述更容易“扩充和维护”。4Createdby刀客羽朋PHP面向对象5Createdby刀客羽朋PHP5中的继承继承是面向对象最重要的特点之一,就是可以实现对类的复用。通过“继承”一个现有的类,可以使用已经定义的类中的方法和属性。继承而产生的类叫做子类。被继承的类,叫做父类,也被成为超类。PHP是单继承的,一个类只可以继承一个父类,但一个父类却可以被多个子类所继承。从子类的角度看,它“继承(inherit,extends)”自父类;而从父类的角度看,它“派生(derive)”子类。它们指的都是同一个动作,只是角度不同而已。子类不能继承父类的私有属性和私有方法。在PHP5中类的方法可以被继承,类的构造函数也能被继承。PHP面向对象继承的简单例子我们分析自然界中的关系,动物类与犬类的关系。例2-1animal.phpDog类继承自animal类。Dog.php6Createdby刀客羽朋PHP面向对象当我们实例化animal类的子类Dog类时,父类的方法setWeight()和getWeight()被继承。我们可以直接调用父类的方法设置其属性$weight,取得其属性$weight。dog类的实例。7Createdby刀客羽朋PHP面向对象构造函数的继承有些资料上说PHP5的构造函数不被继承。演示的结果证明,PHP5的构造函数被继承了。当子类Dog1被实例化时,继承的构造函数被调用了。屏幕上显示了一句"IamanAnimal.".8Createdby刀客羽朋PHP面向对象私有变量和方法不被继承私有变量不被继承,私有方法也不被继承。另外一种说法,私有变量和属性被继承了,但不能被调用。无论怎么说,都不能调用父类的私有属性和私有方法。例2-2-49Createdby刀客羽朋PHP面向对象2.2访问控制在PHP5中,可以在类的属性和方法前面加上一个修饰符(modifier),来对类进行一些访问上的控制。下面表格显示了访问的权限。修饰符同一个类中子类中全局privateYesprotectedYesYespublicYesYesYes(默认)Private的访问权限例2-2-1private不能直接被外部调用,只能由当前对象调用。前面介绍过关于封装的内容.这里不再重复。比如你可以借钱给别人,但不希望别人知道你钱包里面有多少钱。
本文标题:PHP5面向对象初步-part2
链接地址:https://www.777doc.com/doc-6040227 .html