抽象类:包含了抽象方法的类称之为抽象类,不能用于实例化对象,只能被继承!
如:
<?php
abstract class a{
abstract function f1();//没有函数体
}
?>
不完整的方法,也叫抽象方法,指的是没有方法体的方法,称之为只有方法的声明,而没有方法的实现的方法称之为抽象方法。也就是不完整的方法!
需要使用关键字 abstract来声明这个抽象方法与抽象类!
不能实例化对象
注意:抽象类是可以包含其他任何正常的成员的,在此基础上,增加了内部的抽象方法!
(并不是抽象类中只能包含抽象方法)
<?php
abstract class a{
abstract function f1();//没有函数体
}
$o=new a();//Fatal error: Cannot instantiate abstract class a
?>
只能被继承
但是,继承时,要求,如果子类不是抽象类,那么继承的抽象方法,要被实现(被加上方法体)才可以!
<?php
abstract class a{
abstract function f1();//没有方法体
}
class b extends a{
//继承抽像类后,必须实现其抽象方法,否则会报错
public function f1(){
echo 'implement a abstract function';
}
}
$o=new b();
$o->f1();//implement a abstract function
?>
使用意义
可见,抽象类,可以规定其非抽象子类,必须要存在的相应成员方法!
可以规定,子类中都必须存在,但是可以不同的方法!
抽象:abstract,不完整的意思!
实现:implement。将方法完整化!
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- centos7.4 64位下swoole安装及配置
- laravel页面静态化的方法
- navicate连接mycat报1184错误
- 单点登录sso原理及php实现方式及de
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:607篇
- 浏览数:941420