下面的文章提供了 Java 中抽象类的概述。抽象类与 Java 中的任何其他普通类一样。抽象类和常规类之间的显着区别是创建抽象类,我们必须使用“ABSTRACT”关键字。它是类实现的分离。他们用来定义其子类的非常常见的特征。这种类型的类称为抽象类。最重要的是,我们无法创建抽象类的对象。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
抽象类可以包含抽象方法和非抽象方法。但是,它们不能包含子类只能提供的抽象方法的主体。如果子类没有实现抽象方法,那么我们必须显式地将其设为抽象方法。换句话说,如果一个类包含抽象方法,它必须将自己定义为 ABSTRACT。我们可以使用抽象类将多个Java类分组,优化代码,使代码更具可读性,减少冗余。它还为未来的课程提供了模板。
抽象类的语法如下:
下面给出了以下示例:
Human.java
package com.cont.article; public abstract class Human { public abstract void whatTheylike(); public void doTheysleep() { System.out.println("Yes every human require sleep."); } }
Human1.java
package com.cont.article; public class Human1 extends Human { @Override public void whatTheylike() { System.out.println("we like to have icecream."); } }
Human2.java
package com.cont.article; public class Human2 extends Human { @Override public void whatTheylike() { System.out.println("we like to have coffee."); } }
TestHuman.java
package com.cont.article; public class TestHuman { public static void main(String[] args) { Human human1 = new Human1(); human1.whatTheylike(); Human human2 = new Human2(); human2.whatTheylike(); human1.doTheysleep(); human2.doTheysleep(); } }
输出:
在上面的例子中,HUMAN 是一个抽象类,它定义了人类的共同需求、好恶。人有不同的类型,有不同的好恶。所以每个人都可以提供他们喜欢的具体实现。这仅针对他们。
抽象类的主要优点是我们可以根据需求具体实现方法,减少冗余,增加代码的可读性,隐藏方法的实现,提供部分抽象。
我们可以再举一个例子来理解何时使用抽象类。
假设我们有一个 Animal 类。地球上有各种各样的动物,它们在某些或主要意义上都彼此不同。尽管如此,它将包含所有共同特征。
现在,这个 Animal 类不能为每个 Animal 提供特定的方法。所以通过抽象类的概念,我们就可以实现这个功能,不需要多余的代码。
所有动物都有不同类型的声音、习惯等。例如狗、猫、大象、零食都有不同的声音。因此,为此,我们可以在父类中拥有一个通用方法,所有其他子类或子类都可以通过该方法提供其特定的实现。
在父类,即 Animal 中,我们有一个通用的抽象方法,称为它们的 Sound ()。所以每个子类都需要重写这个方法并提供其具体的实现。
下面是抽象类和接口的区别:
抽象类用于提供部分抽象。抽象类不能使用 NEW 关键字实例化。抽象方法没有主体,并且始终以分号 (;) 结尾。抽象类包含抽象方法和非抽象方法。抽象超类的子类需要实现所有抽象方法;如果它没有提供,那么它必须将自己声明为抽象类。即使超类是具体的,子类也可以是抽象的。非抽象类不能包含抽象方法。此外,抽象方法是非静态的。因此,抽象类也有抽象方法和具体方法,因此它们不能提供100%的抽象。这是一个向最终用户隐藏复杂逻辑并仅向他们显示服务的过程。
另一方面,即使其超类是具体的,子类也可以是抽象的,并且也可以用作数据类型。抽象类可以具有静态字段和静态方法。您可以将这些静态成员与类引用一起使用。
以上是Java中的抽象类的详细内容。更多信息请关注PHP中文网其他相关文章!