您的位置:首页 > 编程语言 > PHP开发

PHP学习系列之PHP高级OOP特性

2013-05-05 11:54 267 查看
/*================PHP高级OOP特性======================================*/
/*
* PHP不支持的高级OOP特性:
* a)方法重载
* b)操作符重载
* c)多重继承
*
* 1.对象克隆
*
* a)对象示例:PHP5.0,把所有对象都视为引用,复制对象
* $home = new Home();
* $home2=clone $home;
* b)__clone()方法:
* 此方法的代码在克隆操作期间执行,除了将所有对象复制到目标对象之外还会执行__clone()方法指定的操作。
*
* 2.继承
* a)关键字:extends
* b)构造函数的继承
*   i)如果子类中没有构造函数,子类实例化时会执行父类的构造函数
*   ii)如果子类中有构造函数,子类实例化时不敢父类有没有构造函数,只会执行子类的构造函数,子类构造函数覆盖父类构造函数。
*   iii)如果希望子类和父类构造函数都执行,可以在子类构造函数中调用父类构造函数
*
*
* 3.接口
* a)关键字:interface、implements
* b)接口中的方法在实现类中必须实现,如果实现类没有实现所有方法,必须声明为抽象类,否则会报错。
* c)接口允许不同的类,以不同的方式来实现接口中的方法
* d)PHP中没有多重继承,但是一个类可以实现多个接口
*
* 4.抽象类
* 什么是抽象类呢,抽象类即不能实例化的类,只能作为某个类的基类或者父类。
* a)任何派生类都必须实现从抽象类继承的所有抽象方法,如果没有实现,将报错
* b)看上去接口和抽象类很相似,那什么时候使用接口,什么时候使用抽象类呢?
*   i)如果要创建一个模型,这个模型将由一些紧密相关的对象采用,可以使用抽象类。如果创建一个模型将由一些不相关的对象采用的功能,可以使用接口。
*   ii)如果必须从多个来源继承,使用接口,php可以实现多个接口,但是不能多重继承
*   iii)如果知道所有类都会共享一个公共的行为实现,使用抽象类,并在其中实现行为,接口中不能实现行为
*
* 5.命名空间介绍
* PHP6.0中将有这种特性
*
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: