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 相关文章推荐
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
Php Image Resize图片大小调整的函数代码
Jan 17 PHP
php 获取百度的热词数据的代码
Feb 18 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
php随机显示图片的简单示例
Feb 15 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
Jun 26 PHP
php中error与exception的区别及应用
Jul 28 PHP
PHP基于文件存储实现缓存的方法
Jul 20 PHP
php HTML无刷新提交表单
Apr 05 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
php利用ZipArchive类操作文件的实例
Jan 21 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获取远程图片并保存到本地的方法
2015/05/12 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
JCalendar 日历控件 v1.0 beta[兼容IE&amp;Firefox] 有文档和例子
2007/05/30 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
JQuery在循环中绑定事件的问题详解
2016/06/02 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
对node.js中render和send的用法详解
2018/05/14 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
详解Python中DOM方法的动态性
2015/04/11 Python
Python实现处理管道的方法
2015/06/04 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
python保存数据到本地文件的方法
2018/06/23 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
python zip()函数的使用示例
2020/09/23 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
德国综合购物网站:OTTO
2018/11/13 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
采购人员的个人自我评价
2014/01/16 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
公司合并协议书范本
2014/09/30 职场文书
英语教师求职信范文
2015/03/20 职场文书
Python 中面向接口编程
2022/05/20 Python