PHP抽象类 介绍


Posted in PHP onJune 13, 2012

在自然语言中,我们理解抽象的概念是,一个物体的一种大的描述,这种描述对某类物体来说是共有的特性。那么在PHP中也是一样的,我们把一个类进行抽象,可以指明类的一般行为,这个类应该是一个模板,它指示它的子方法必须要实现的一些行为。
PHP抽象类应用的定义:
abstract class ClassName{
}

PHP抽象类应用要点:

1.定义一些方法,子类必须完全实现这个抽象中所有的方法

2.不能从抽象类创建对象,它的意义在于被扩展

3.抽象类通常具有抽象方法,方法中没有大括号

PHP抽象类应用重点:

1.抽象方法不必实现具体的功能,由子类来完成

2.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义

3.抽象类的方法可以有参数,也可以为空

4.如果抽象方法有参数,那么子类的实现也必须有相同的参数个数

PHP抽象类应用示例:
abstract public function_name(); //注意没有大括号
PHP抽象类规则:
某个类只要至少含有一个抽象方法,就必须声明为抽象类
抽象方法,不能够含有函数体
继承抽象类的子类,实现抽象方法的,必须跟该抽象方法具有相同或者更低的访问级别
继承抽象类的子类,如果不实现所有抽象方法,那么该子类也为抽象类
作为演示,我们来实现一个简单的抽象类:计算矩形的面积。这个矩形可以从形状类扩展。

< ?PHP 
abstract class Shape { 
abstract protected function get_area(); 
//和一般的方法不同的是,这个方法没有大括号 
//你不能创建这个抽象类的实例:$Shape_Rect= new Shape(); 
} 
class Rectangle extends Shape{ 
private $width; 
private $height; 
function __construct($width=0, 
$height=0){ 
$this->width=$width; 

$this->height=$height; 
} 
function get_area(){ 

echo ($this->width+$this->height)*2; 
} 
} 
$Shape_Rect = new Rectangle(20,30); 
$Shape_Rect->get_area(); 
?>

这也算是一个简单的例子,基本上可以说明PHP中抽象类的用法了,其他的不想多说了。个人觉得抽象类一般在大的项目才会用吧,因为我觉得它实在是要遵守的”规矩”太多了,用起来不方便!当然这只是我的意见。还想多说一些,PHP抽象类应用是单继承的,也就是说你只能从一个类继承,而不能一个类继承了A类,又继承B类,如果要实现这样的功能,得使用接口相关的知识了,在此暂时不讨论PHP接口的知识!一句话:单继承多接口中!
PHP 相关文章推荐
关于BIG5-HKSCS的解决方法
Mar 20 PHP
加强版phplib的DB类
Mar 31 PHP
PHP 数字左侧自动补0
Mar 31 PHP
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
Jul 31 PHP
php调整服务器时间的方法
Apr 03 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
php引用传递
Apr 01 PHP
MySQL 日期时间函数常用总结
Jun 12 #PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 #PHP
php数字游戏 计算24算法
Jun 10 #PHP
细谈php中SQL注入攻击与XSS攻击
Jun 10 #PHP
逆序二维数组插入一元素的php代码
Jun 08 #PHP
PHP 年龄计算函数(精确到天)
Jun 07 #PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 #PHP
You might like
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
PHP7 标准库修改
2021/03/09 PHP
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
JS实现随机点名器
2020/04/12 Javascript
python中管道用法入门实例
2015/06/04 Python
Python构建网页爬虫原理分析
2017/12/19 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
如何利用python查找电脑文件
2018/04/27 Python
python支付宝支付示例详解
2019/08/22 Python
Python imread、newaxis用法详解
2019/11/04 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
精彩广告词大全
2014/03/19 职场文书
揭牌仪式主持词
2014/03/19 职场文书
中秋节主持词
2014/04/02 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
活动策划求职信模板
2014/04/21 职场文书
新书发布会策划方案
2014/06/09 职场文书
私人委托书格式
2014/09/10 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
排球赛新闻稿
2015/07/17 职场文书
大学校园招聘会感想
2015/08/10 职场文书