抽象类之间的差异(differences between abstract class)和java接口(interface in java)的区别

Java中抽象类与接口的比较...

Java中抽象类与接口的比较

为了理解Java中抽象类和接口之间的区别,首先独立地理解它们是很重要的。Java中的抽象类用于声明具有一组共同特征的子类。抽象类的常见用法是其他类的超类,实际上,它允许扩展抽象类。抽象关键字用于抽象类的声明中。就像任何其他类一样,抽象类具有描述类可以执行的方法和特性的字段。仅仅通过一个抽象类的声明,这个类就不能被初始化

Java接口可以等同于协议。它代表了一种预设和约定的行为,允许促进不相关对象的交互。根据用户的不同,界面掌握着实现不同操作的关键。因此,接口充当生产者和消费者之间的链接。因此,Java中的接口是一组方法,其中包含可能具有常量声明的空体。在向Java接口公开一个类时,这意味着该类所期望的行为是该接口的所有方法的实现。

差异

首先,抽象类允许非静态或final字段,而不是接口中使用的静态和final字段。接口中不能使用任何实现代码,抽象类中可能使用了实现代码。在抽象类中推出的实现代码可以有几个或全部实现的方法。默认情况下,接口的所有方法都是“抽象的”

 

抽象类的方法或成员的可见性也是可能的,这些抽象类可以是public、protected、private或none。另一方面,界面的可见性只能预设为“公共”的一种可见性模式

 

抽象类将自动继承对象类。实际上,这意味着包括clone()和equals()等方法。在接口中,不可能继承对象类。在这之后,抽象类可以拥有构造函数,但是接口不能拥有构造函数。

 

由于一个类只能有一个超类,因此Java中的接口还具有实现多个继承的非常重要的功能。尽管只能存在一个超类,但它可以在任意数量的接口中实现。在一个抽象类中不可能有多个继承。

 

在性能上,接口的实现往往比抽象类慢,这主要是由于在类中找到相应方法的额外方向。然而,由于不断升级的现代Java虚拟机,这种差异变得更加缓慢。

 

在接口中添加方法需要跟踪实现特定接口的所有实现类。或者,您可以扩展接口,以便允许它有额外的方法。如果您碰巧处理的是一个抽象类,那么只需添加该方法的默认实现,代码就可以继续工作。由于抽象类和接口之间存在差异,因此需要注意的是,它们不是竞争对手,但本文提到的差异是相辅相成的。

 

摘要

  1. 抽象类字段不是静态的或最终的,而接口有静态的和最终的表。
  2. 实现代码不能在接口中使用,而可以在抽象类中使用。
  3. 接口可见性只能是公共的,而抽象类可见性可以是不同的。
  4. 抽象类将自动继承对象类,但在接口中不可能。
  5. 抽象类在实现上比接口快。

  • 发表于 2021-06-24 11:28
  • 阅读 ( 179 )
  • 分类:IT

你可能感兴趣的文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据抽象(data abstraction)和封装(encapsulation)的区别

...键术语 数据抽象、封装、面向对象 什么是数据抽象(data abstraction)? 数据抽象是指隐藏内部细节,只显示功能。换句话说,它隐藏了实现细节,只是向外界展示了特性。一个现实世界的例子是电视。用户不需要知道内部电子电...

  • 发布于 2021-06-30 17:01
  • 阅读 ( 1223 )

应用程序编程接口(api)和java框架(framework in java)的区别

...建软件的子程序定义、通信协议和工具。Java框架是一种抽象,在这种抽象中,提供通用功能的软件可以通过附加的用户编写的代码有选择地进行更改,从而提供特定于应用程序的软件。从这个定义来看,API和Java框架之间的区别...

  • 发布于 2021-07-01 01:02
  • 阅读 ( 548 )

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

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

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

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

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

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

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

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

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

0 篇文章

相关推荐