面向对象3



面向对象编程——抽象
可以使用 abstract 来修饰一个类或者方法。
用 abstract 修饰的类表示这个类是一个抽象类, 用
abstract 修饰的方法表示这个方法是一个抽象方法。
抽象类不能被实例化。
抽象方法是只有方法声
明,而没有方法的实现内容。
用 abstract 修饰的类表示这个方法是一个抽象方法。
抽象方法,只有方法的声明部分,没有方法体。


抽象方法没有 {} ,而采用 ; 结束。
一个类中, 只要有一个抽象方法, 这个类必须被声明为抽象类。


抽象方法在子类中必须被重写




面向对象编程——多态


对象的多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同
的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义
多态这个概念,在 Java 中指的是变量可以指向的对象的类型,可是变量声明类型的子类。对象一旦创建,
它的类型是不变的,多态的是变量。


在 PHP5 中,变量的类型是不确定的,一个变量可以指向任何类型的
数值、字符串、对 象、资源等。我们无法说 PHP5 中多态的是变量。


我们只能说在 PHP5 中,多态应用在
方法参数的类型提示位置。
一个类的任何子类对象都可以满足以当前类型作为类型提示的类型要求。


所有实现这个接口的类,都可以满
足以接口类型作为类型提示的方法参数要求。


简单的说,一个类拥有其父类、和已实现接口的身份


多态的实现:
          


1. 通过实现接口实现多态


;  2. 通过继承实现多态






include_once     如果没有对应文件,只是发出错误警告而后面的代码正确执行
require_once      如果没有对应文件,发出错误提示,且程序终止并退出


判断类当中是否包含某个指定名称的非静态函数方法  method_exists


根据名字来调用类中的非静态函数方法  call_user_func


调用当前类中的静态方法非常简单   self::类名字符串(参数)
判断类中是否包含某个指定名称的静态方法???


这个函数要在PHP5.5以后才能正常使用:forward_static_call


如果没有去做定义,则该函数默认无返回值,相当于返回一个FALSE


$ms = new MoShu();
$ms->birth = time();// birth属性本来不存在,但是执行了这一句代码后,$ms对象则被增加了birth属性


就算有__get函数,但是如果类当中没有包含该属性,则还是要报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值