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

王林
リリース: 2019-11-27 14:27:23
転載
5010 人が閲覧しました

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

抽象クラス:

クラス内に抽象メソッドがある場合、そのクラスは抽象クラスになります。

抽象クラス内のクラスの前には、abstract 修飾子を付ける必要があります。

抽象クラスには通常のメソッドまたは抽象メソッドを含めることができ、抽象メソッドの数は 0 または複数にすることができます。

サブクラスは親クラスを継承し、このクラスも抽象クラスになる場合を除き、すべての抽象メソッドを書き直す必要があります。

無料のオンライン学習ビデオの推奨: Java オンライン学習

インターフェイス:

表面上、インターフェイスは特殊です。抽象クラスですが、クラスはクラス、インターフェイスはインターフェイスであり、並列関係になります。

インターフェイス内のすべてのメソッドは抽象メソッドである必要があります。 (1.8 以降では、インターフェイスで非抽象メソッドを定義できるようになります)

インターフェイス内のメソッド定義は、デフォルトで public abstract 型に設定され、メンバー変数のデフォルトは public static 型に設定されます。最終タイプ。 (省略した場合、システムはデフォルトで完了します)。

抽象クラスと通常のクラスの違い:

抽象メソッドを含むクラスは抽象クラスと呼ばれますが、抽象メソッドしか存在できないという意味ではありません。抽象クラスのメソッド通常のクラスと同様に、メンバ変数と通常のメンバ メソッドを持つこともできます。

抽象クラスと通常のクラスの違いは次のとおりです。

抽象メソッドのアクセス修飾子は、public および protected である必要があります。

抽象クラスはインスタンス化できません。

クラスが抽象クラスから継承する場合、サブクラスは親クラスの抽象メソッドを実装する必要があります。サブクラスが親クラスの抽象メソッドを実装しない場合、サブクラスも抽象クラスである必要があります。

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

クラスは 1 つの抽象クラスのみを継承できますが、クラスは複数のインターフェイスを実装できます。

抽象クラスはコンストラクターを持つことができますが、インターフェイスはコンストラクターを持つことができません。

抽象クラスにはメンバー変数が存在できますが、インターフェイスにはメンバー変数は存在しません。 (final によって変更され、定数に変換されます)

抽象クラスには通常のメソッドを含めることができますが、インターフェイス内のすべてのメソッドは抽象メソッドでなければなりません。 (1.8 以降、インターフェイスで非抽象メソッドを定義できるようになりました)

抽象クラスの抽象メソッドのアクセス タイプは publicprotected にできますが、アクセス タイプはインターフェイス内の抽象メソッドの数 public のみにすることができ、デフォルトは public abstract です (省略した場合、デフォルトで自動的に完了します)。

抽象クラスのメンバー変数はさまざまな型にすることができますが、インターフェイスのメンバー変数は public staticfinal 型のみにすることができます。

抽象クラスには静的コード ブロックと静的メソッドを含めることができますが、インターフェイスには静的コード ブロックと静的メソッドを含めることはできません。

関連記事やチュートリアルをさらに詳しく知りたい場合は、Java 言語の概要

にアクセスしてください。

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

ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート