次の記事では、Java の抽象クラスの概要を説明します。抽象クラスは、Java の他の通常のクラスと似ています。抽象クラスと通常のクラスの大きな違いは、抽象クラスを作成することです。「ABSTRACT」キーワードを使用する必要があります。クラス実装の分離です。これらは、サブクラスの非常に一般的な機能を定義するために使用されていました。このようなタイプのクラスは、抽象クラスと呼ばれます。最も重要なことは、抽象クラスのオブジェクトを作成できないということです。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
抽象クラスには、抽象メソッドだけでなく非抽象メソッドも含めることができます。ただし、サブクラスのみが提供できる抽象メソッドの本体を含めることはできません。サブクラスが抽象メソッドを実装していない場合は、明示的に ABSTRACT にする必要があります。つまり、クラスに抽象メソッドが含まれる場合、クラス自体を ABSTRACT として定義する必要があります。抽象クラスを使用して複数の Java クラスをグループ化し、コードを最適化し、コードを読みやすくし、冗長性を減らすことができます。また、将来のクラス用のテンプレートも提供します。
抽象クラスの構文は次のとおりです:
以下に例を示します:
Human.java
リーリーHuman1.java
リーリーHuman2.java
リーリーTestHuman.java
リーリー出力:
上記の例では、HUMAN は人間の共通のニーズ、好き嫌いを定義する抽象クラスです。人間にはさまざまなタイプがあり、好き嫌いも異なります。したがって、すべての人間が自分の好みの具体的な実装を提供できます。それは彼らだけに特有のものです。
抽象クラスの主な利点は、要件に応じたメソッドの特定の実装があり、冗長性が削減され、コードの可読性が向上し、メソッドの実装が隠蔽され、部分的な抽象化が提供されることです。
いつ抽象クラスを使用するかを理解するための例がもう 1 つあります。
Animal クラスが 1 つあるとします。地球上にはさまざまな動物がいますが、それらはすべて何らかの意味または主要な意味で互いに異なります。ただし、すべての共通機能がすべて含まれます。
この Animal クラスは、すべての Animal に特定のメソッドを持つことはできません。したがって、抽象クラスの概念により、冗長なコードなしでこの機能を実装できます。
すべての動物には、異なる種類の鳴き声や習慣などがあります。たとえば、犬、猫、象、おやつなどはそれぞれ異なる鳴き声を持っています。そのため、親クラスにジェネリック メソッドを用意し、それを介して他のすべてのサブクラスまたは子クラスが特定の実装を提供できるようにします。
親クラス、つまり Animal には、Sound() と呼ばれる 1 つの汎用抽象メソッドがあります。したがって、すべての子クラスはこのメソッドをオーバーライドし、その特定の実装を提供する必要があります。
以下は抽象クラスとインターフェースの違いです:
An abstract class is used to provide partial abstraction. An abstract class cannot be instantiated using the NEW keyword. An Abstract method has no body and always ends with a semicolon (;). Abstract class contains abstract and non-abstract methods. The subclass of an abstract superclass needs to implement all abstract methods; if it does not provide, then it has to declare itself as an abstract class. A subclass can be abstract even if the superclass is concrete. A non-abstract class cannot contain abstract methods. Also, the abstract method is non-static. Hence, abstract classes also have abstract and concrete methods, so they cannot provide 100% abstraction. It is a process of hiding the complex logic from the end-user and showing them only the services.
On the other hand, a subclass can be abstract even if its superclass is concrete and can also be used as a data type. An abstract class may have static fields and static methods. You can use these static members with a class reference.
The above is the detailed content of Abstract Class in Java. For more information, please follow other related articles on the PHP Chinese website!