PHP 抽象方法与抽象类abstract关键字介绍及应用


Posted in PHP onOctober 16, 2014

PHP 抽象方法与抽象类 abstract 关键字
abstract 关键字用于定义抽象方法与抽象类。

抽象方法

抽象方法指没有方法体的方法,具体就是在方法声明的时候没有 {} 括弧以及其中的内容,而是直接在声明时在方法名后加上分号结束。

abstract 关键字用于定义抽象方法,语法:
abstract function function_name();

抽象类

只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类。抽象类同样用 abstract 关键字来定义。
抽象类不能产生实例对象,通常是将抽象方法做为子类方法重载的模板使用的,且要把继承的抽象类里的方法都实现。实际上抽象类是方便继承而引入的。

例子:

<?php 

abstract class AbstractClass{ 

// 定义抽象方法 

abstract protected function getValue(); 

// 普通方法 

public function printOut(){ 

print $this->getValue()."<br />"; 

} 

} 

class ConcreteClass extends AbstractClass{ 

protected function getValue(){ 

return "抽象方法的实现"; 

} 

} 
$class1 = new ConcreteClass; 

$class1->printOut(); 

?>

在这个例子中,父类定义了抽象方法以及对于方法的实现,但实际的内容却在子类里定义。
PHP 相关文章推荐
PHP 读取大文件的X行到Y行内容的实现代码
Jun 24 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
php数组编码转换示例详解
Mar 11 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
Oct 20 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
php合并数组并保留键值的实现方法
Mar 12 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
php pdo连接数据库操作示例
Nov 18 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 #PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 #PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 #PHP
ThinkPHP分页实例
Oct 15 #PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 #PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 #PHP
PHP实现文件下载断点续传详解
Oct 15 #PHP
You might like
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
smarty实现多级分类的方法
2014/12/05 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
怎么写自荐书范文
2014/02/12 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
文艺节目主持词
2015/07/06 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python