• 技术文章 >后端开发 >php教程

    你必须了解PHP中什么是抽象类和抽象方法

    长期闲置长期闲置2021-10-26 15:52:06原创189
    在之前的文章中给大家带来了《五分钟带你看PHP中的接口interface声明与应用(实例详解)》,其中详细介绍了PHP接口的声明与应用问题,本篇我们来看一下PHP中的抽象类和抽象方法,希望对大家有所帮助!

    在上一篇文章中介绍了接口,其中讲到了可以把接口理解成一个特殊的抽象类,那么什么是抽象类,想要了解什么是抽象类我们首先要讲什么是抽象方法,抽象类和抽象方法的出现,主要还是想方便类的继承,那接下来我们就来看一下什么是抽象方法,什么是抽象类。

    什么是抽象方法

    在我们之前的学习中,一个类可以有多个子类,我们定义抽象方法就是为了方便类的继承。我们类里面定义的没有方法体的方法就是抽象法。那么什么是方法体?方法体指的就是类声明的时候大括号以及大括号其中的内容,没有方法体指的就是没有这个内容,而是直接在声明的时候放法明后加上分号结束。这就叫做抽象方法。

    需要注意的是,抽象方法在声明的时候要通过关键字“abstract”来进行修饰。它的语法格式如下:

    abstract 访问权限修饰符 function 方法名1(参数列表);
    abstract 访问权限修饰符 function 方法名2(参数列表);

    抽象方法的理解还是比较简单的,接下来我们看一下什么是抽象类。

    什么是抽象类

    通过上文已经知道了什么是抽象方法,那么抽象类的定义其实也很好理解,当一个类的里面有一个方法是抽象方法的时候,我们定义这个类就是抽象类。同时抽象类也是需要使用“abstract”关键字来修饰的,在抽象类里面可以有不是抽象方法的成员属性,但是一旦有一个方法是抽象方法,那这个类就是抽象类。

    其中需要注意的是,抽象类的成员方法并不全是抽象方法,哪些不是抽象方法的成员方法和属性访问权限不能是private,抽象类中的方法也是需要被子类继承的。

    下面给大家实例看一下:

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

    抽象类的特点

    抽象类中含有不能被实现的抽象方法,就表示抽象类不能被实例化,那就创建不了对象,因此我们无法直接使用它。那既然无法直接使用它,我们使用抽象类能够解决什么问题呢?

    接下来我们通过实例来看一下,定义一个抽象类,然后使用另一个类来继承这个抽象类并实现抽象类中的抽象方法。

    示例如下:

    <?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();
    ?>

    输出结果:

    1026.11.png

    由上述实例,我们实现了定义一个抽象类,然后使用另一个类来继承这个抽象类并实现抽象类中的抽象方法。

    就像上文说的,前面的文章中讲到了PHP接口的相关知识,里面说道可以把接口理解成一个特殊的抽象类,那么既然特殊的话PHP接口和抽象类有什么区别和相同点呢?下面我们就来盘点一下。这里推荐大家可以先看《五分钟带你看PHP中的接口interface声明与应用(实例详解)》其中介绍了PHP接口。

    PHP接口和抽象类的区别

    PHP接口和抽象类的相同点

    大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

    以上就是你必须了解PHP中什么是抽象类和抽象方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:PHP 抽象类 接口
    上一篇:五分钟带你看PHP中的接口interface声明与应用(实例详解) 下一篇:PHP中怎样去判断对象是否属于一个类?
    大前端线上培训班

    相关文章推荐

    • 抽象类的作用是什么?• PHP的抽象类和接口有什么区别• php中接口和抽象类的区别是什么• php抽象类和接口的区别是什么• php抽象类和抽象方法是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网