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

来源:互联网 发布:ubuntu软件数据库损坏 编辑:程序博客网 时间:2024/06/07 00:52
/*================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中将有这种特性 * */

原创粉丝点击