抽象类(abstract class)和php中的接口(interface in php)的区别

PHP中抽象类和接口的主要区别在于抽象类可以由抽象方法和非抽象方法组成,而接口中的所有方法都没有实现。...

PHP中抽象类和接口的主要区别在于抽象类可以由抽象方法和非抽象方法组成,而接口中的所有方法都没有实现。

PHP是一种服务器端脚本语言。它是web开发中最流行的语言之一。PHP允许处理文件、处理表单、发送电子邮件、上传文件、将应用程序与DBMS(如MySQL)和许多其他任务连接起来。Zend和CodeIgniter等框架都是基于PHP的。PHP还支持面向对象编程(OOP)。OOP中的一个主要概念是抽象。它有助于隐藏实现,并仅向用户显示功能。抽象类和接口是实现抽象的两种方法。

覆盖的关键领域

1.什么是PHP中的抽象类-定义,功能2.什么是PHP中的接口-定义,功能3.PHP中抽象类和接口的区别-主要区别比较

关键术语

抽象,抽象类,接口,面向对象,PHP

抽象类(abstract class)和php中的接口(interface in php)的区别

什么是php中的抽象类(abstract class in php)?

抽象方法是没有任何实现的方法。抽象类是至少有一个抽象方法的类。它既可以有抽象的方法,也可以有非抽象的方法。关键字“abstract”用于声明抽象类。此外,扩展抽象类的类应该为该类中的抽象方法提供实现。程序员不能使用抽象类创建对象,但他们可以从扩展抽象类的类创建对象。

Difference Between Abstract Class and Interface in PHP

Figure 1: Abstract class in PHP

在上图中,Shape是一个抽象类。它有一个抽象方法draw和一个非抽象方法display。三角形类扩展了形状。因此,triangle类为抽象方法draw提供了实现。在第19行中,创建了一个三角形对象。在第20行中,使用该对象调用draw方法。因此,draw方法将执行并在控制台上显示“三角形”。

什么是php中的接口(interface in php)?

接口中的所有方法都是抽象方法。换句话说,它只包含函数原型或没有实现的函数。程序员不能使用接口创建对象。使用“interface”关键字声明接口。即使接口中的方法是抽象的,程序员也不会用abstract关键字声明它们。相反,这些方法必须具有公共可见性范围。实现接口的类应该为其所有抽象方法提供实现。

Main Difference - Abstract Class vs Interface in PHP

Figure 2: PHP program 1 with an interface

在上面的程序中,Shape是一个接口。它有一个名为draw的方法。它没有实现。类三角形延伸形状。Triangle类提供了draw方法的实现。在第16行中,创建了一个三角形对象。在第17行中,使用该对象调用draw方法。因此,draw方法在控制台上执行并显示“三角形”。

此外,接口还有助于实现多重继承。多重继承是允许一个类使用多个类的属性和方法的过程。

Abstract Class vs Interface in PHP_Figure 3

Figure 3: PHP program with interfaces

接口A有一个方法methodA。类似地,接口B有一个方法methodB。这些方法都是函数原型。换句话说,这些方法没有任何实现。类测试实现接口A和B。因此,该类提供methodA和methodB的实现。类测试也有自己的方法methodTest。第26行,创建一个测试对象。然后使用该对象调用methodA、method和methodTest。

抽象类(abstract class)和php中的接口(interface in php)的区别

定义

PHP中的抽象类是用abstract关键字声明的类,是抽象方法和非抽象方法的集合。相反,PHP中的接口是引用类型,由没有实现或函数原型的方法集合组成。因此,这是PHP中抽象类和接口之间的主要区别。

方法

抽象类可以有抽象方法和非抽象方法,而接口中的所有方法都是没有实现的方法。

关键字

当用“abstract”关键字声明抽象类时,用“interface”关键字声明接口。

使用

PHP中抽象类和接口的另一个区别是,抽象类有助于实现抽象,而接口有助于实现抽象和多重继承。

结论

PHP语言支持面向对象编程。抽象是OOP的支柱。抽象类和接口是实现抽象的两种方法。PHP中抽象类和接口的主要区别在于抽象类可以由抽象方法和非抽象方法组成,而接口中的所有方法都没有实现。

引用

1.“PHP中的抽象类”,Geeksforgeks,2018年12月11日,可在此处获得。2.“PHP中的多重继承”,Geeksforgeks,2019年2月21日,这里提供。 2.“PHP中的多重继承”,Geeksforgeks,2019年2月21日,

  • 发表于 2021-07-01 18:08
  • 阅读 ( 223 )
  • 分类:IT

你可能感兴趣的文章

包裹(package)和java接口(interface in java)的区别

Java中的Package和Interface的主要区别在于,Package有助于对类进行有条理的分类以方便访问和维护,而Interface则有助于实现多个继承和实现抽象。 Java是最流行的编程语言之一。Java的主要优点是它支持面向对象编程。这种方法允...

  • 发布于 2020-10-18 11:01
  • 阅读 ( 569 )

班(class)和接口(interface)的区别

班(class)和接口(interface)的区别 面向对象编程(OOP)是软件开发中的一种常见范式。它有助于使用类和对象为编程带来真实的场景。类是创建对象的蓝图。程序员可以用属性和方法创建一个类。学生和老师是客体。创建对象称...

  • 发布于 2020-10-24 04:25
  • 阅读 ( 256 )

继承(inheritance)和java接口(interface in java)的区别

继承(inheritance)和java接口(interface in java)的区别 Java是Sun Microsystems公司开发的一种编程语言。Java可以用来开发各种应用程序。它是一种支持面向对象、结构化等多种范式的语言,Java的主要优点是支持面向对象编程(OOP)。程序...

  • 发布于 2020-10-25 00:02
  • 阅读 ( 490 )

抽象类(abstract class)和c中的接口#(interface in c#)的区别

...让我们详细讨论一下两者的理论方面。 什么是抽象类(an abstract class)? 抽象类是一种特殊类型的类,它充当其他类的基,不能实例化。抽象类的实现逻辑由其派生类提供。为了使一个类抽象,使用了“abstract”修饰符,这意味着...

  • 发布于 2021-06-25 03:34
  • 阅读 ( 355 )

抽象类(abstract class)和java接口(interface in java)的区别

...们详细研究一下两者的区别。 什么是java中的抽象类(an abstract class in java)? Java中的抽象类是一个声明为抽象的类——它可能包含也可能不包含抽象方法。它与Java接口非常相似,只是它可以包含默认的方法实现。与面向对象编程...

  • 发布于 2021-06-25 03:52
  • 阅读 ( 299 )

抽象类(abstract class)和java接口(interface in java)的区别

...键术语 抽象类、接口、多重继承 什么是java中的抽象类(abstract class in java)? 用abstract关键字声明的类称为抽象类。抽象类既可以有抽象方法,也可以有非抽象方法。类可以扩展抽象类并实现抽象类的抽象方法。不能从抽象类创...

  • 发布于 2021-07-01 01:29
  • 阅读 ( 276 )

工厂模式(factory pattern)和抽象工厂模式(abstract factory pattern)的区别

...ShapeFactory以获取所需的对象类型。 什么是抽象工厂模式(abstract factory pattern)? 抽象工厂模式使用超级工厂并创建其他工厂。它也被称为工厂的工厂。在这种模式中,接口创建相关对象的工厂,而不显式指定它们的类。换言之,...

  • 发布于 2021-07-01 06:13
  • 阅读 ( 187 )

包裹(package)和接口(interface)的区别

...st”,则import语句如下所示。 导入测试。*; 什么是接口(interface)? 接口是实现抽象和多重继承的机制。接口中的方法是抽象方法。这些方法没有任何实现。它也可以有变量或字段。它们可以是公共的、静态的或最终的。此外,...

  • 发布于 2021-07-01 09:47
  • 阅读 ( 350 )

封装(encapsulation)和c语言中的抽象#(abstraction in c#)的区别

...t方法赋值,public get方法获取值。 什么是c语言中的抽象#(abstraction in c#)? 抽象有助于隐藏实现细节,只允许向用户显示功能。假设一台电视机的遥控器。用户不需要知道控制器的内部电路就可以使用它。抽象与此类似。它关注...

  • 发布于 2021-07-01 14:04
  • 阅读 ( 370 )

抽象类(abstract class)和混凝土等级(concrete class)的区别

... 抽象,抽象类,类,具体类,面向对象 什么是抽象类(abstract class)? OOP中的一个主要概念是抽象。它是一个隐藏内部细节并只向用户显示功能的过程。抽象类是实现抽象的一种方法。Java等编程语言使用抽象关键字来表示抽象类...

  • 发布于 2021-07-01 18:04
  • 阅读 ( 1027 )
Qnwhcpl394
Qnwhcpl394

0 篇文章

相关推荐