您的位置 首页 java

java中的抽象概念

什么是抽象?

Java 或面向对象编程中的抽象是一种将实现与接口和五个基本原理之一以及封装、继承、多态性、类和对象分离的方法。Java中的抽象是通过使用Java中的接口和抽象类来实现的。接口或抽象类是不具体的东西,是不完整的东西。为了使用接口或抽象类,我们需要扩展和实现具有具体行为的抽象方法。
抽象的一个示例是创建一个接口来表示常见行为,而无需指定有关该行为如何工作的任何细节,就像您创建一个名为 Server 的接口一样,该接口具有 start()和stop()方法。这被称为服务器的抽象,因为每个服务器都应该有一种启动和停止的方式,并且细节可能会有所不同。 正如我之前所说,Java 中的抽象是使用抽象类和接口实现的,下一节将讨论。事实上,Java 中什么是抽象, 抽象和封装的区别 也是一个非常流行的核心 Java 面试,因为强大的 OOPS 技能是 Java 开发人员的首要要求之一?
抽象也是难以掌握的概念之一。 程序员 经常混合不同级别的抽象,这会导致代码不灵活,所以要小心。

Java中的 抽象类 是什么?

抽象类 是不完整 的,您不能创建抽象类的实例。如果你想使用它,你需要通过扩展它来使其完整或具体。如果一个类不包含任何抽象方法并且实现了从它实现或扩展的抽象类或接口继承的所有抽象方法,则该类称为具体类。

顺便说一句,Java 有抽象类的概念,抽象方法但变量在 Java 中不能是抽象的。
Java 中抽象类的一个流行示例是ActionListener,它有一个名为actionPerformed(ActionEvent ae) 的抽象方法。当触发ActionEvent时调用此方法,例如单击JButton时。在 java 中,通过使用匿名类实现抽象方法actionPerformed(ActionEvent ae)来附加ActionListener和JButton是很常见的,如下例所示:

 JButton ok = new JButton( "OK" );
好的。addActionListener ( new ActionListener(){
            public   void    actionPerformed (ActionEvent ae){
                //处理事件的代码
           }
});  

Java 中的抽象方法没有主体,它只是一个声明。 为了使用抽象方法,您需要在子类中覆盖该方法

那么 什么时候使用抽象 呢?(在我看来最重要)

当您知道某些东西需要在那里但不确定它应该是什么样子时。例如,当我创建一个名为Vehicle的类时,我知道应该有start()和stop()之类的方法,但不知道该 start 和 stop 方法应该如何工作,因为每辆车都可以有不同的启动和停止机制 e ..g 有些可以通过踢来启动,有些可以通过按下按钮来启动。同样的概念也适用于 Java 中的接口,我们将在其他文章中讨论。

因此这些start()和stop()方法的实现应该留给它们的具体实现,例如 Scooter、MotorBike、Car 等。有关何时在对象中使用抽象的更多详细信息,请参见Head First Object-Oriented Analysis and Design 一书面向编程。

在 Java 中使用接口进行抽象

在Java中,接口是另一种提供 抽象的方式 接口 默认是抽象的,只包含公共、 静态、最终常量或抽象方法。一个很常见的面试问题是我们应该在哪里使用 抽象类 ,在我看来我们应该在哪里使用 java 接口 ,这对于设计更好的 Java 应用程序很重要,如果你只知道你的类的方法的名称,你可以选择 java 接口应该有例如对于服务器它应该有start()和 stop()方法,但我们不知道这些 start 和 stop 方法将如何工作。 如果您在设计类时知道一些行为,并且在所有子类中保持通用,请将其添加到 抽象类 中。像Runnable接口这样的接口是 Java 中抽象的一个很好的例子,它用于抽象由多个 线程 执行的任务。Callable是可以返回值的任务的另一个很好的抽象。
一张图片胜过100多个字,这张图片证明了这一点。它很好地解释了面向对象编程世界中数据抽象的概念:

抽象:要记住的事情

1)如果您知道某些东西需要在课堂上使用,但其实现会有所不同,请使用抽象。抽象实际上是思维过程的结果,它确实需要良好的领域和面向对象分析和设计经验才能为您的项目提出良好的抽象。

2) 在 Java 中,您不能使用 new 运算符创建抽象类的实例,这是编译器错误。虽然抽象类可以有一个构造函数。

3) abstract 是Java中的关键字,既可以与类一起使用,也可以与方法一起使用。抽象类可以包含抽象方法和具体方法。抽象方法没有主体,只有声明。

4) 当一个类的任何方法声明为抽象时,一个类自动成为抽象类。

5) 抽象方法没有方法体。

6)在Java中,变量不能被抽象化,它唯一的类或方法是抽象的。
7) 如果一个类扩展了一个抽象类或接口,它必须为其所有抽象方法提供实现才能成为一个具体类。或者,这个类也可以是抽象的。

文章来源:智云一二三科技

文章标题:java中的抽象概念

文章地址:https://www.zhihuclub.com/192002.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图