
在上一篇文章中介绍了接口,其中讲到了可以把接口理解成一个特殊的抽象类,那么什么是抽象类,想要了解什么是抽象类我们首先要讲什么是抽象方法,抽象类和抽象方法的出现,主要还是想方便类的继承,那接下来我们就来看一下什么是抽象方法,什么是抽象类。
什么是抽象方法
在我们之前的学习中,一个类可以有多个子类,我们定义抽象方法就是为了方便类的继承。我们类里面定义的没有方法体的方法就是抽象法。那么什么是方法体?方法体指的就是类声明的时候大括号以及大括号其中的内容,没有方法体指的就是没有这个内容,而是直接在声明的时候放法明后加上分号结束。这就叫做抽象方法。
需要注意的是,抽象方法在声明的时候要通过关键字“abstract”来进行修饰。它的语法格式如下:
abstract 访问权限修饰符 function 方法名1(参数列表); abstract 访问权限修饰符 function 方法名2(参数列表);
抽象方法的理解还是比较简单的,接下来我们看一下什么是抽象类。
什么是抽象类
通过上文已经知道了什么是抽象方法,那么抽象类的定义其实也很好理解,当一个类的里面有一个方法是抽象方法的时候,我们定义这个类就是抽象类。同时抽象类也是需要使用“abstract”关键字来修饰的,在抽象类里面可以有不是抽象方法的成员属性,但是一旦有一个方法是抽象方法,那这个类就是抽象类。
其中需要注意的是,抽象类的成员方法并不全是抽象方法,哪些不是抽象方法的成员方法和属性访问权限不能是private,抽象类中的方法也是需要被子类继承的。
下面给大家实例看一下:
abstract class demo{
var $test;
abstract function fun1();
abstract function fun2();
}抽象类的特点
抽象类和抽象方法都需要用abstract修饰;
抽象方法必须在抽象类中,抽象类中可以没有抽象方法;
抽象类不能直接创造对象(实例化);
抽象类的子类如果重写所有抽象方法,那么就是一个具体的类;抽象类的子类不重写所有抽象方法,那么子类还是一个抽象类;
抽象类中含有不能被实现的抽象方法,就表示抽象类不能被实例化,那就创建不了对象,因此我们无法直接使用它。那既然无法直接使用它,我们使用抽象类能够解决什么问题呢?
接下来我们通过实例来看一下,定义一个抽象类,然后使用另一个类来继承这个抽象类并实现抽象类中的抽象方法。
示例如下:
<?php
abstract class father{
public $study = '好好学习<br>';
public $study1 = '天天向上<br>';
abstract function title();
abstract function output();
}
class Demo extends father{
public function title(){
echo '福如东海,寿比南山。';
}
public function output(){
echo $this -> study.$this -> study1;
}
}
$obj = new Demo();
$obj -> output();
$obj -> title();
?>输出结果:

由上述实例,我们实现了定义一个抽象类,然后使用另一个类来继承这个抽象类并实现抽象类中的抽象方法。
就像上文说的,前面的文章中讲到了PHP接口的相关知识,里面说道可以把接口理解成一个特殊的抽象类,那么既然特殊的话PHP接口和抽象类有什么区别和相同点呢?下面我们就来盘点一下。这里推荐大家可以先看《五分钟带你看PHP中的接口interface声明与应用(实例详解)》其中介绍了PHP接口。
PHP接口和抽象类的区别
抽象类可以有属性、普通方法、抽象方法,但接口不能有属性、普通方法、可以有常量。
抽象类内未必有抽象方法,但接口内一定会有“抽象”方法。
抽象类用abstract关键字在类前声明,且有class声明为类,接口是用interface来声明,但不能用class来声明,因为接口不是类。
抽象类是用extends关键字让子类继承父类后,在子类实现详细的抽象方法。而接口则是用implements让普通类在类里实现接口的详细方法,且接口可以一次性实现多个方法,用逗号分开各个接口就可。
PHP接口和抽象类的相同点
都是用于声明某一种事物,规范名称、参数,形成模块,未有详细的实现细节。
都是通过类来实现相关的细节工作。
语法上,抽象类的抽象方法与接口一样,不能有方法体,即{}符号。
都可以用继承,接口可以继承接口形成新的接口,抽象类可以继承抽象类从而形成新的抽象类。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
-
什么是因特网?它有什么作用?因特网的组成有哪些? 时间:2025-10-28 -
什么是因特网?什么是万维网?两者之间的区别是什么? 时间:2025-10-28 -
什么是局域网和广域网?两者之间的区别是什么? 时间:2025-10-28 -
什么是网络协议?常用的网络协议有哪些类型? 时间:2025-10-28 -
什么是网络协议? 它在网络中的作用是什么? 时间:2025-10-28 -
什么是网络协议?协议的三要素是什么?各有什么含义? 时间:2025-10-28
今日更新
-
2026年AI概念币投资指南 热门交易所权威推荐
阅读:18
-
十二星座是什么梗?揭秘星座爆笑名场面,一秒get你的专属笑点!
阅读:18
-
2026年十大热门Memecoin预测:DOGE、PEPE、WIF谁将登顶
阅读:18
-
"躺平摸鱼是什么梗?当代年轻人职场摆烂新姿势"
阅读:18
-
2026年去中心化AI代币TOP榜:FET与AGIX领衔未来趋势
阅读:18
-
2026年RWA代币TOP榜:ONDO、POLY、CFG领跑实物资产赛道
阅读:18
-
【SEO优化版】
"卷心菜兄是什么梗"揭秘网络热词背后打工人的自嘲式幽默,3秒get最新职场梗!
阅读:18
-
2026十大交易平台稳定性排名 币安欧易稳居榜首
阅读:18
-
王者荣耀十周年峡谷金曲玩家合唱版MV今日正式上线
阅读:18
-
2026全球最安全交易所排名 注册前必看权威指南
阅读:18










