ホームページ >Java >&#&チュートリアル >Javaの抽象クラスとインターフェースの違いは何ですか?

Javaの抽象クラスとインターフェースの違いは何ですか?

青灯夜游
青灯夜游オリジナル
2019-11-15 17:55:343056ブラウズ

Java では、抽象クラスとインターフェイスは両方とも抽象化を実現するために使用されますが、両者の違いは何ですか?次の記事で紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

Javaの抽象クラスとインターフェースの違いは何ですか?

抽象クラス

抽象クラスは、サブクラスの共通の特性、つまりサブクラスの共通点を取得するために使用されます。例: 車、自転車、電動スクーターはすべて車であり、Vehicle という共通の抽象クラスを持つことができます。抽象クラスはインスタンス化できず、オブジェクトの作成に使用できず、サブクラスのスーパークラスとしてのみ使用できます。

インターフェイス

インターフェイスは、抽象メソッドのコレクションです。クラスがインターフェイスを実装する場合、クラスはこのインターフェイスのすべての抽象メソッドを継承します。

注: 抽象メソッドは、宣言のみを持ち、特定の実装を持たない特別なメソッドです。

インターフェイスは単なるフォームであり、それ自体では何も実行できません。インターフェイスを実装したい場合は、このインターフェイス内のすべてのメソッドを必ず実装する必要があります。

抽象クラスとインターフェイスの違い:

1. 抽象クラスは抽象メソッドと具象メソッドの両方を持つことができますが、インターフェイスは抽象メソッドのみを持つことができます。抽象メソッドのコレクション (Java 8 以降、デフォルトおよび静的メソッドを持つこともできます)。

2. 抽象クラスは多重継承をサポートしていないため、一度に 1 つのクラスまたは 1 つの抽象クラスのみを拡張できます。インターフェイスは複数の継承をサポートしており、任意の数のインターフェイスを一度に拡張できます。

3. 抽象クラスには、最終変数、非最終変数、静的変数、および非静的変数を含めることができます。インターフェイスには静的変数と最終変数のみがあります。

4. 抽象クラスは、別の具象 (通常) クラスまたは抽象クラスを拡張し、1 つ以上の Java インターフェイスを実装できます。インターフェイスは別の Java インターフェイスを拡張することしかできず、インターフェイスは抽象クラスを実装できません。

5. 抽象クラスでは、メソッドを抽象として宣言するにはキーワード「abstract」が必要です。インターフェイスでは、キーワード「abstract」はオプションであり、メソッドを abstract

7 として宣言するために使用されます。キーワード「extends」を使用して抽象クラスを拡張できます。インターフェイス クラスは、キーワード「implements」を使用して実装できます。

8. Java 抽象クラスは、protected および public 抽象メソッドを持つことができ、また、private、protected などのクラス メンバーを持つことができます。デフォルトでは、Java インターフェースのメンバーはパブリックであり、インターフェースにはパブリック抽象メソッドのみを持つことができます。

以上がJavaの抽象クラスとインターフェースの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。