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 相关文章推荐
社区(php&amp;&amp;mysql)五
Oct 09 PHP
php db类库进行数据库操作
Mar 19 PHP
PHP获取当前文件所在目录 getcwd()函数
May 13 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 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
PHP中替换换行符的几种方法小结
2012/10/15 PHP
php中使用sftp教程
2015/03/30 PHP
Symfony查询方法实例小结
2017/06/28 PHP
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
python实现360的字符显示界面
2014/02/21 Python
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
django 微信网页授权登陆的实现
2019/07/30 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
python中threading开启关闭线程操作
2020/05/02 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
优秀的教师个人的中文求职信
2013/09/21 职场文书
七一表彰活动方案
2014/01/18 职场文书
管理人员岗位职责
2015/02/14 职场文书
教师见习总结范文
2015/06/23 职场文书
Python集合set()使用的方法详解
2022/03/18 Python
浅析Python OpenCV三种滤镜效果
2022/04/11 Python