PHP实践之路(目录索引)
类与对象(3)
1、抽象类
a、在class前面加上abstract关键字类声明一个抽象类,在方法上面加上abstract关键字来定义抽象方法
b、抽象类不能直接被实例化,你必须先继承该抽象类,然后再实例化子类
c、抽象类中至少要包含一个抽象方法。如果类方法被声明为抽象的,那么其中就不能包括具体的功能实现
d、继承一个抽象类的时候,子类必须实现抽象类中的所有抽象方法
e、继承父类的抽象方法时,访问控制必须宽松于父类。宽松程度由大到小依次为public>protected>private
实验一下
<?php
//换行输出
function println($var){
echo $var;
echo "<br />";
}
abstract class Father
{
abstract function fun1(); //抽象方法只声明,不实现
abstract protected function fun2();
function fun3(){
println("I am not abstract method...");
}
private function fun4(){
println("private method...");
}
}
class Child extends Father
{
//父类中fun1默认的可见性为public,所以子类中该方法的可见性必须为public
function fun1(){
println("fun1 executed...");
}
//?此处可见性为protected时将报错,我的php版本为php-5.4.7
function fun2(){
println("fun2 executed...");
}
}
$obj=new Child();
$obj->fun1(); //fun1 executed...
$obj->fun2(); //fun2 executed...
$obj->fun3(); //I am not abstract method...
//$obj->fun4(); //父类私有方法不能继承
?>
按照API文档介绍抽象方法子类的可见性可与父类一样,但这里的fun2如果采用protected则报错,这是为什么呢?请知情者指教
2、接口
a、接口使用interface关键字声明
b、接口可以理解为类里所有方法都是抽象方法的抽象类,也就是所有方法都只含声明,没有实现(但并不用abstract来声明方法)
c、接口中定义的所有方法都必须是public
d、使用implements关键字来实现接口,一个类可以实现多个接口。实现多个接口时,接口中的方法不能有重名
e、接口也可以继承,通过使用extends操作符
接下来实验时间
<?php
//换行输出
function println($var){
echo $var;
echo "<br />";
}
//定义一个接口动物
interface Animal{
function walk();
function eat();
}
//定义一个接口人继承自动物
interface Person extends Animal{
function talk();
}
//定义一个接口中国人
interface Chinese{
function work();
}
//定义一个类,实现了Person和Chinese两个接口,必须实现两个接口中的所有方法
class ChineseWorker implements Person,Chinese{
function walk(){
println("walking...");
}
function eat(){
println("eating...");
}
function talk(){
println("talking...");
}
function work(){
println("working in china...");
}
}
$worker=new ChineseWorker();
$worker->walk(); //walking...
$worker->eat(); //eating...
$worker->talk(); //talking...
$worker->work(); //working in china...
?>
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
首先介绍了PHP的OO特性,包括类声明、对象实例化、继承、方法与属性封装以及静态方法与属性、抽象类、接口、异常处理、对象克隆等高级主题。然后介绍了设计模式,阐述了模式的概念,展示了如何在PHP中实现几个关键的...
《深入PHP:面向对象、模式与实践(第3版)》全书源码,有利于深入学习PHP,快速掌握PHP高级技术
深入PHP面向对象模式与实践第2版,是一本学习php面向对象知识的不可多得的一本好书。
深入PHP 面向对象、模式与实践.rar
深入PHP面向对象、模式与实践_第3版_高清PDF(附完整源码),高清PDF,书上所有代码均有附带在压缩包内
深入PHP面向对象 模式与实践第三版号称是php中的圣经,
PHP面向对象模式是怎么一回事?那就深入并实践一下
深入PHP:面向对象、模式与实践,php面向对象设计,欢迎大家下载
深入PHP面向对象、模式与实践(第2版).part3深入PHP面向对象、模式与实践(第2版).part3
由浅入深详细精炼阐述php面向对象及设计模式,适合新手老手,真正的php宝典
首先介绍了php的oo特性,包括类声明、对象实例化、继承、方法与属性封装以及静态方法与属性、抽象类、接口、异常处理、对象克隆等高级主题。然后介绍了设计模式,阐述了模式的概念,展示了如何在php中实现几个关键的...
《深入PHP》是由人民邮电出版社出版的书籍,作者(美)赞德斯彻书 名: 深入PHP 作 者:(美)赞德斯彻 ,陈浩,吴孙滨,胡丹 译 出版社: 人民邮电出版社 出版时间: 2010-5-1 ISBN: 9787115225788 开本: 16开 定价...
深入PHP 面向对象 模式与实践(第3版).pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
书在内容上每个段落先提出问题,给出实现,...本节内容东坡小编为大家整理带来的是一份pdf高清扫描版,且内容完整的中文版深入PHP面向对象模式与实践(第三版),需要查阅的朋友只需点击本文相应的下载地址进行下载即可!
深入PHP:面向对象、模式与实践(第三版)高清PDF和完整源码.rar
买了这本书,感觉很不错,但是没办法天天带着这本书,就搞了电子版本的,原先是没有目录的,看起来很不方便,又找了一个有目录的,结合代码,方便大家
深入PHP++面向对象、模式与实践_2017英文版+最新中文版(附源码)
深入PHP:面向对象、模式与实践(第三版)高清PDF和完整源码
深入PHP面向对象_模式与实践(第2版)中文完整版 下载地址 http://download.csdn.net/source/2479944 http://download.csdn.net/source/2479976
深入PHP:面向对象、模式与实践(第三版)高清PDF和完整源码