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

抽象类是一个声明为抽象的类,它可能包含也可能不包含抽象方法。抽象类不能实例化,但可以子类化。抽象类可以有静态字段和静态方法。当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现。但是,如果没有,那么子类也必须声明为抽象的。抽象方法是在没有实现的情况下声明的方法(不带大括号,后跟分号)。...

抽象类

抽象类是一个声明为抽象的类,它可能包含也可能不包含抽象方法。抽象类不能实例化,但可以子类化。抽象类可以有静态字段和静态方法。当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现。但是,如果没有,那么子类也必须声明为抽象的。抽象方法是在没有实现的情况下声明的方法(不带大括号,后跟分号)。

抽象类示例

007Ys3FFgy1gwyft2f5tfj30jz0g5wfz

何时使用

如果这些语句适用于您的情况,请考虑使用抽象类:

  1. 您希望在几个密切相关的类之间共享代码。
  2. 您希望扩展抽象类的类具有许多公共方法或字段,或者需要除public之外的访问修饰符(例如protected和private)。
  3. 您想要声明非静态或非最终字段。这使您能够定义可以访问和修改其所属对象状态的方法。

关于抽象类,您需要了解什么

  • 抽象类定义类的标识。
  • 抽象类速度很快。
  • 抽象类既可以有抽象方法,也可以有具体方法。
  • 抽象类可以有final、non-final、static和non-static变量。
  • 抽象类可以继承一个类和多个接口。
  • 抽象类是使用抽象关键字声明的。
  • 抽象可以有private、public、protected等类成员。
  • 抽象类可以扩展另一个Java类并实现多个Java接口。
  • 摘要可以使用关键字“extends”进行扩展
  • 抽象类可以提供接口的实现。
  • 抽象类可以声明构造函数和析构函数。
  • 在抽象类中,将方法声明为抽象时必须使用abstract关键字。
  • 当同类的各种实现共享一个共同行为时,应该使用抽象类。
  • 抽象类可以有一个访问修饰符。

界面

接口只是对象方法的声明;这不是实施。在接口中,我们定义对象可以执行的操作类型。这些操作由实现接口的类定义。接口在类和外部世界之间形成契约,编译器在构建时强制执行该契约。

接口示例

007Ys3FFgy1gwyft3pzdxj30ig0rg40y

何时使用

如果这些陈述适用于你的情况,请考虑使用接口:

  1. 您希望不相关的类将实现您的接口。例如,可比较和可克隆的接口由许多不相关的类实现。
  2. 您希望指定特定数据类型的行为,但不关心由谁实现其行为。
  3. 您希望利用多个继承。

关于接口,您需要了解什么

  • 接口有助于定义类的外围功能。
  • 接口很慢。
  • 接口只能有抽象方法。Java8以后,它可以有默认方法和静态方法。
  • 接口只有静态变量和最终变量。
  • 一个接口可以继承多个接口,但不能继承一个类。
  • 接口是使用接口关键字声明的。
  • 默认情况下,Java接口的成员是公共的。
  • 一个接口只能扩展另一个Java接口。
  • 可以使用关键字“implements”实现接口
  • 接口不能提供抽象类的实现。
  • 接口不能声明构造函数和析构函数。
  • 在摘要中,接口关键字对于将方法声明为摘要是可选的。
  • 当各种实现只共享方法签名时使用接口。值类型的多态层次结构。
  • 接口没有访问修饰符。接口中定义的所有内容都假定为公共修饰符。

Also Read: Difference Between Throw And Throws In Java

抽象类(abstract class)和表格形式的接口(interface in tabular form)的区别

比较基础 抽象类 界面
作用 抽象类定义类的标识。 接口有助于定义类的外围功能。
速度 抽象类速度很快。 接口很慢。
方法 抽象类既可以有抽象方法,也可以有具体方法。 接口只能有抽象方法。Java8以后,它可以有默认方法和静态方法。
变量 抽象类可以有final、non-final、static和non-static变量。 接口只有静态变量和最终变量。
遗产 抽象类可以继承一个类和多个接口。 一个接口可以继承多个接口,但不能继承一个类。
关键词 抽象类是使用抽象关键字声明的。 接口是使用接口关键字声明的。
成员 抽象可以有private、public、protected等类成员 默认情况下,Java接口的成员是公共的。
实施 抽象类可以扩展另一个Java类并实现多个Java接口。 一个接口只能扩展另一个Java接口。
实现关键字 摘要可以使用关键字“extends”进行扩展 可以使用关键字“implements”实现接口
灵活性 抽象类可以提供接口的实现。 接口不能提供抽象类的实现。
建造商及;析构函数 抽象类可以声明构造函数和析构函数。 接口不能声明构造函数和析构函数。
抽象关键字 在抽象类中,将方法声明为抽象时必须使用abstract关键字。 在摘要中,接口关键字对于将方法声明为摘要是可选的。
用法 当同类的各种实现共享一个共同行为时,应该使用抽象类。 当各种实现只共享方法签名时使用接口。值类型的多态层次结构。
访问修饰符 抽象类可以有一个访问修饰符。 接口没有访问修饰符。接口中定义的所有内容都假定为公共修饰符。

Also Read: Difference Between Iterator And Enumeration

  • 发表于 2021-11-29 11:00
  • 阅读 ( 109 )
  • 分类:IT

你可能感兴趣的文章

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

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

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

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

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

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

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

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

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

入门时应学习的10个核心java概念

... public interface List { public void add(Object obj); public Object get(int index); public void remove(int index);} ...

  • 发布于 2021-03-13 05:33
  • 阅读 ( 247 )

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

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

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

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

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

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

数据抽象(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 )

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

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

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

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

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

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

0 篇文章

相关推荐