抽象类,abstract类
首页->学习资料->编程语言->php教程->面向对象 关键词: 发布时间:2015-01-12 08:24:41 浏览次数:1228

抽象类:包含了抽象方法的类称之为抽象类,不能用于实例化对象,只能被继承!

如:

<?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。将方法完整化!


赞:(0)
踩:(0)
相关文章
构造方法
析构方法
静态成员
类常量
继承
重写
访问修饰限定符,public,protecte
冒泡排序
final(类不能被继承,方法不能被重
php魔术方法
热门文章
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
标签
rabbitmq mysql备份 elasticsearch golang swoole
我的项目
【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
粤ICP备18028092号-1  微信:hurong241