php中的抽象方法和抽象类


Posted in PHP onFebruary 14, 2017

1、什么是抽象方法?

我们在类里面定义的没有方法提的方法就是抽象方法。所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字"abstract"来修饰。

例如:

abstract function fun1(); 
abstract function fun2();

2、什么是抽象类?

只要一个类里面有一个方法是抽象方法,那么这个类就定义为抽象类,抽象类也要使用“abstract”关键字来修饰;在抽象类里面可以有不是抽象的方法和成员属性,但只要有一个方法是抽象的方法,这个类就必须声明为抽象类,使用“abstract”修饰。

例如:

abstract class demo{
var $test;
abstract function fun1();
abstract function fun2();
}

3、抽象类有什么作用?

上例子中定义了一个抽象类“demo”使用了“abstract”来修饰,在这个类里面定义了一个成员属性"$test",和两个抽象方法“fun1”和“fun2”还有一个非抽象的方法fun3();那么抽象类我们怎么使用呢?最重要的一点就是抽象类不能产生实例对象,所以也不能直接使 用,前面我们多次提到过类不能直接使用,我们使用的是通过类实例化出来的对象,那么抽 象类不能产生实例对象我们声明抽象类有什么用呢?我们是将抽象方法是做为子类重载的模 板使用的,定义抽象类就相当于定义了一种规范,这种规范要求子类去遵守,子类继函抽象 类之后,把抽象类里面的抽象方法按照子类的需要实现。子类必须把父类中的抽象方法全部 都实现,否则子类中还存在抽象方法,那么子类还是抽象类,还是不能实例化对;为什么我 们非要从抽象类中继承呢?因为有的时候我们要实现一些功能就必须从抽象类中继承,否则 这些功能你就实现不了,如果继承了抽象类,就要实现类其中的抽象方法;

例如:

abstract class mode{
 var $test;
 abstract function fun1();
 abstract function fun2();
 function fun2(){
  ....
 }
}
$mode = new mode(); //抽象类只能为产生实例对象,所以这样做是错的,实例化对象交给子类
class test extends mode{
  function fun1(){
  ....
  }
  
  function fun2(){
  ....
  }
}
$test = new test(); //子类可以实例化对象,因为实现了所有父类的抽象化方法

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
PHP中的正规表达式(一)
Oct 09 PHP
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
关于mysql 字段的那个点为是定界符
Jan 15 PHP
PHP 编程的 5个良好习惯
Feb 20 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
May 04 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
php输出全球各个时区列表的方法
Mar 31 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
简单谈谈PHP中的trait
Feb 25 PHP
php登录超时检测功能实例详解
Mar 21 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PHP的cookie与session原理及用法详解
Sep 27 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 #PHP
PHP静态成员变量
Feb 14 #PHP
php中序列化与反序列化详解
Feb 13 #PHP
PHP最常用的正则表达式
Feb 13 #PHP
PHP面相对象中的重载与重写
Feb 13 #PHP
PHP中overload与override的区别
Feb 13 #PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 #PHP
You might like
php 图片加水印与上传图片加水印php类
2010/05/12 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
实例讲解Python中的私有属性
2014/08/21 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
python打开使用的方法
2019/09/30 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
万能检讨书
2015/01/27 职场文书
教师见习总结范文
2015/06/23 职场文书
运动会班级前导词
2015/07/20 职场文书
学生病假条范文
2015/08/17 职场文书
组织委员竞选稿
2015/11/21 职场文书
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫