Home> Java> javaTutorial> body text

Abstract Class in Java

PHPz
Release: 2024-08-30 15:59:08
Original
703 people have browsed it

次の記事では、Java の抽象クラスの概要を説明します。抽象クラスは、Java の他の通常のクラスと似ています。抽象クラスと通常のクラスの大きな違いは、抽象クラスを作成することです。「ABSTRACT」キーワードを使用する必要があります。クラス実装の分離です。これらは、サブクラスの非常に一般的な機能を定義するために使用されていました。このようなタイプのクラスは、抽象クラスと呼ばれます。最も重要なことは、抽象クラスのオブジェクトを作成できないということです。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

抽象クラスには、抽象メソッドだけでなく非抽象メソッドも含めることができます。ただし、サブクラスのみが提供できる抽象メソッドの本体を含めることはできません。サブクラスが抽象メソッドを実装していない場合は、明示的に ABSTRACT にする必要があります。つまり、クラスに抽象メソッドが含まれる場合、クラス自体を ABSTRACT として定義する必要があります。抽象クラスを使用して複数の Java クラスをグループ化し、コードを最適化し、コードを読みやすくし、冗長性を減らすことができます。また、将来のクラス用のテンプレートも提供します。

Java の抽象クラスの構文

抽象クラスの構文は次のとおりです:

Abstract Class in Java

Java で抽象クラスはどのように機能しますか?

  • 抽象クラスには、抽象メソッドと非抽象メソッド、つまり本体のない抽象メソッドがあり、実装されたメソッドを持つことができます。
  • 抽象クラスは、さまざまなクラスに固有の最も一般的な機能を提供するために使用されます。サブクラスは、ニーズや要件に応じて、これらの抽象メソッドをさまざまな方法で実装できます。
  • 「new」演算子を使用して抽象クラスのオブジェクトを作成することはできませんが、サブクラスのコンストラクターでのみ呼び出すことができるコンストラクターを定義することはできます。サブクラス コンストラクターは、スーパークラス コンストラクターにアクセスしてその変数を初期化できます。この変数は、さらなる要件のためにサブクラスで使用される可能性があります。

Java の抽象クラスの例

以下に例を示します:

Human.java

リーリー

Human1.java

リーリー

Human2.java

リーリー

TestHuman.java

リーリー

出力:

Abstract Class in Java

上記の例では、HUMAN は人間の共通のニーズ、好き嫌いを定義する抽象クラスです。人間にはさまざまなタイプがあり、好き嫌いも異なります。したがって、すべての人間が自分の好みの具体的な実装を提供できます。それは彼らだけに特有のものです。

抽象クラスの主な利点は、要件に応じたメソッドの特定の実装があり、冗長性が削減され、コードの可読性が向上し、メソッドの実装が隠蔽され、部分的な抽象化が提供されることです。

いつ抽象クラスを使用するかを理解するための例がもう 1 つあります。

  • 特定の実装を持つさまざまなクラスと共通の機能を共有するには、抽象クラスを使用する必要があります。
  • 抽象クラスでは、フィールドは静的かつfinalであってはなりません。具体的なメソッド、プライベート メソッド、パブリック メソッド、および保護されたメソッドを使用することもできます。

Animal クラスが 1 つあるとします。地球上にはさまざまな動物がいますが、それらはすべて何らかの意味または主要な意味で互いに異なります。ただし、すべての共通機能がすべて含まれます。

この Animal クラスは、すべての Animal に特定のメソッドを持つことはできません。したがって、抽象クラスの概念により、冗長なコードなしでこの機能を実装できます。

すべての動物には、異なる種類の鳴き声や習慣などがあります。たとえば、犬、猫、象、おやつなどはそれぞれ異なる鳴き声を持っています。そのため、親クラスにジェネリック メソッドを用意し、それを介して他のすべてのサブクラスまたは子クラスが特定の実装を提供できるようにします。

親クラス、つまり Animal には、Sound() と呼ばれる 1 つの汎用抽象メソッドがあります。したがって、すべての子クラスはこのメソッドをオーバーライドし、その特定の実装を提供する必要があります。

抽象クラスとインターフェイス

以下は抽象クラスとインターフェースの違いです:

  • Abstract class and interface are both used to achieve abstraction in Java. However, an abstract class provides partial abstraction, whereas an interface provides 100% or complete abstraction.
  • By default, variables in an interface are final. But abstract class contains a non-final variable as well. Similarly, an abstract class can also have a static, non–static variable. But the interface will only include a final and static variable.
  • Member variables of an abstract class can be private, public, and protected, but they are, by default, public in the interface.
  • An abstract class can extend another Java class and implement multiple interfaces, but one interface can only extend another interface. Likewise, an abstract class can provide an implementation of an interface, but an interface cannot do so.
  • We use implements and extend keywords to implement and extend interfaces and classes.
  • We can modify or access an abstract class’s non-static and non-final variables through the method.

Conclusion

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!

Related labels:
source:php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!