首页 > 编程知识 正文

php抽象类和普通类的区别,抽象类使用场景

时间:2023-05-04 18:50:57 阅读:154960 作者:1155

PHP抽象类和接口是什么意思? 这些的区别是什么? 这里介绍一下PHP抽象类和接口的区别。 具体细节如下。 希望文章能对大家有帮助。

抽象类(abstract class )和接口(interface )是面向对象的重要概念。 他们很相似,都定义了实现的方法,但又有不同的使用场景。 有关PHP抽象类和接口的区别,请参见以下示例:

接口(Interface ) ——定义行为

抽象类(Abstract Class ) ——实现行为

具体类(class ) ——执行行为

一.接口

接口定义函数的规范,声明所需的函数和常量,但不能指定实现方法。 接口就像特定类的方法的规范。

接口定义了引发某个行为所需的方法、方法名称。 然后,允许具体的类来实现这些方法。

请注意,接口类不能定义类成员。 定义的方法必须存在于实现的类中。

接口名称

{

函数方法1 (;

函数方法2 (;

}

//实现接口

类名称implements接口名称

{

方法1 ();

方法2 ();

}

二.抽象类

抽象类是实例化的类,只能用作其他类的基类。 例如,您可以编写有关读的抽象类,以电子方式阅读或用纸阅读,然后继承读抽象类。

abstractclass类名

{

各种方法

}

抽象类可以确保一致性。 任何派生类都必须实现从其抽象类中继承所有抽象方法,因此如果不实现就会出现错误。

我应该使用抽象类吗? 还是接口?

这是个问题

*创建类模型时,密切相关的对象将采用此模型并使用抽象类。 如果模型被不太相关的对象采用,请使用界面。

*如果希望特定的class从多个源继承行为,请使用接口。 php类可以继承多个接口,但不能继承多个抽象类。

*如果所有类共享公共行为实现,则使用抽象类在其中实现行为。 首先在子类中继承抽象类,继承的子类可以实现原行为。

(_______拆下

事物的出现,总是有其出现的理由(需求)!

但是,事物的生存,需要适应性(灵活性)!

比如长颈鹿,脖子长,这是抽象的概念;

吃草(非肉食性动物的特征,界面)。

因此,当需要描述长颈鹿时,可以用界面(非肉食性动物)和抽象(脖子长)方法来定义。

而且,具体是什么种类/或颜色的长颈鹿,怎么吃草,这就是具体的种类。

PHP接口类

首先看界面,决定界面的类,界面类:

namespacefrontendmodels;

界面测试界面

{

publicfunctioncloud (;

publicfunctionsky (;

publicstaticfunctioncolor ($ color;

}

在PHP中,接口只能定义方法(或静态方法),但不能实现特定的方法。 用PhpStorm写具体的方法会提示错误。 接口只需严格定义需要实现的方法,并写出要实现的方法即可,无需具体实现或定义成员变量。

使用接口:

namespacefrontendmodels;

classtestimplementstestinterface

{

publicfunctioncloud (

{

echo'Cloud…. ';

}

publicfunctionsky (

{

}

//phpfensi.com

publicstaticfunctioncolor ($ color ) {

}

}

要继承接口类,必须实现接口定义中的每个方法。 如果不实现,则会发生错误。 这就是PHP的接口,必须严格定义要实现的方法,并在子类中实现。

PHP抽象类

定义抽象类:

abstractclassTestabstract

{

公共$ abstract=' abstract ';

abstractfunctionhehe (;

publicfunctionhehe2(

{

echo'hehe2';

}

}

这里有两种方法。 一个用abstract修饰。 这样写意味着该方法必须由子类实现,但只能定义不能在抽象类中具体实现。 一种是普通的成员方法,如果有具体的实现,子类也会被重写。

classabextendsTestabstract

{

publicfunctionhehe (

{

echo'hehe ';

}

}

子类继承抽象类,并且只实现抽象类中定义的抽象方法,抽象类可以定义成员变量,但不能使用接口。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。