面向对象3
2016-06-26 15:46
183 查看
面向对象编程——抽象
可以使用 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函数,但是如果类当中没有包含该属性,则还是要报错
可以使用 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函数,但是如果类当中没有包含该属性,则还是要报错
相关文章推荐
- ADB WIFI,告别USB连接线
- win10怎么映射网络驱动器,怎么连接共享文件夹
- iOS/Swift跳转界面时隐藏tabBar的方法
- Kafka总结系列(四)
- imooc学习笔记——流式布局和热门标签
- Linux常用命令(二)
- 维修道路 题解
- git学习笔记--时光穿梭机
- Drush has Error on windows
- UISearchBar
- bluebird-Core API(一)
- udp通信C++实现的细节
- 51nod 1019 逆序数<STL vector>
- Java中的stream流的概念解析及实际运用总结
- 指针间接赋值的意义
- 转:中国古代十大深情诗词
- react组件生命周期
- 安卓开发之自定义View通过Drawable绘制图标
- STL之容器适配器
- 面向星辰大海,出发吧骚年!