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

/*================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中将有这种特性
 *
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值