抽象クラス:
クラス内に抽象メソッドがある場合、そのクラスは抽象クラスになります。
抽象クラス内のクラスの前には、abstract
修飾子を付ける必要があります。
抽象クラスには通常のメソッドまたは抽象メソッドを含めることができ、抽象メソッドの数は 0 または複数にすることができます。
サブクラスは親クラスを継承し、このクラスも抽象クラスになる場合を除き、すべての抽象メソッドを書き直す必要があります。
無料のオンライン学習ビデオの推奨: Java オンライン学習
インターフェイス:
表面上、インターフェイスは特殊です。抽象クラスですが、クラスはクラス、インターフェイスはインターフェイスであり、並列関係になります。
インターフェイス内のすべてのメソッドは抽象メソッドである必要があります。 (1.8 以降では、インターフェイスで非抽象メソッドを定義できるようになります)
インターフェイス内のメソッド定義は、デフォルトで public abstract
型に設定され、メンバー変数のデフォルトは public static 型に設定されます。最終
タイプ。 (省略した場合、システムはデフォルトで完了します)。
抽象クラスと通常のクラスの違い:
抽象メソッドを含むクラスは抽象クラスと呼ばれますが、抽象メソッドしか存在できないという意味ではありません。抽象クラスのメソッド通常のクラスと同様に、メンバ変数と通常のメンバ メソッドを持つこともできます。
抽象クラスと通常のクラスの違いは次のとおりです。
抽象メソッドのアクセス修飾子は、public
および protected
である必要があります。
抽象クラスはインスタンス化できません。
クラスが抽象クラスから継承する場合、サブクラスは親クラスの抽象メソッドを実装する必要があります。サブクラスが親クラスの抽象メソッドを実装しない場合、サブクラスも抽象クラスである必要があります。
抽象クラスとインターフェイスの違い:
クラスは 1 つの抽象クラスのみを継承できますが、クラスは複数のインターフェイスを実装できます。
抽象クラスはコンストラクターを持つことができますが、インターフェイスはコンストラクターを持つことができません。
抽象クラスにはメンバー変数が存在できますが、インターフェイスにはメンバー変数は存在しません。 (final によって変更され、定数に変換されます)
抽象クラスには通常のメソッドを含めることができますが、インターフェイス内のすべてのメソッドは抽象メソッドでなければなりません。 (1.8 以降、インターフェイスで非抽象メソッドを定義できるようになりました)
抽象クラスの抽象メソッドのアクセス タイプは public
、protected
にできますが、アクセス タイプはインターフェイス内の抽象メソッドの数 public
のみにすることができ、デフォルトは public abstract
です (省略した場合、デフォルトで自動的に完了します)。
抽象クラスのメンバー変数はさまざまな型にすることができますが、インターフェイスのメンバー変数は public staticfinal
型のみにすることができます。
抽象クラスには静的コード ブロックと静的メソッドを含めることができますが、インターフェイスには静的コード ブロックと静的メソッドを含めることはできません。
関連記事やチュートリアルをさらに詳しく知りたい場合は、Java 言語の概要
にアクセスしてください。以上がJava の抽象クラス、通常のクラス、インターフェイスの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。