Javaのインターフェース
インターフェイスには、抽象メソッドに加えて、定数、デフォルトメソッド、静的メソッド、およびネストされた型も含まれる場合があります。メソッド本体は、デフォルトのメソッドと静的メソッドにのみ存在します。
インターフェイスの作成は、クラスの作成に似ています。ただし、クラスはオブジェクトの属性と動作を記述します。また、インターフェースには、クラスが実装する動作が含まれています。
インターフェイスを実装するクラスが抽象でない限り、インターフェイスのすべてのメソッドをクラスで定義する必要があります。
インターフェイスは、次の点でクラスに似ています-
- インターフェースには、任意の数のメソッドを含めることができます。
- インターフェイスは、拡張子が.javaのファイルに書き込まれ、インターフェイスの名前はファイルの名前と一致します。
- インターフェースのバイトコードは.classファイルに表示されます。
- インターフェイスはパッケージに表示され、対応するバイトコードファイルはパッケージ名と一致するディレクトリ構造である必要があります。
ただし、インターフェースは、-
を含むいくつかの点でクラスとは異なります。- インターフェースをインスタンス化することはできません。
- インターフェースにはコンストラクターが含まれていません。
- インターフェースのすべてのメソッドは抽象的です。
- インターフェースにインスタンスフィールドを含めることはできません。インターフェイスに表示できる唯一のフィールドは、静的と最終の両方で宣言する必要があります。
- インターフェースはクラスによって拡張されません。クラスによって実装されます。
- インターフェースは複数のインターフェースを拡張できます。
インターフェースの宣言
interfaceキーワードは、インターフェイスを宣言するために使用されます。インターフェイスを宣言する簡単な例を次に示します-
例
以下はインターフェースの例です-
/* File name : NameOfInterface.java */ import java.lang.*; // Any number of import statements public interface NameOfInterface { // Any number of final, static fields // Any number of abstract method declarations }
-
Javaの抽象クラス
宣言にabstractキーワードを含むクラスは、abstractクラスと呼ばれます。 抽象クラスには、抽象メソッド、つまり本体のないメソッドが含まれる場合と含まれない場合があります(public void get();) ただし、クラスに少なくとも1つの抽象メソッドがある場合、そのクラスは抽象として宣言する必要があります。 クラスが抽象として宣言されている場合、インスタンス化することはできません。 抽象クラスを使用するには、それを別のクラスから継承し、そのクラスに抽象メソッドの実装を提供する必要があります。 抽象クラスを継承する場合は、その中のすべての抽象メソッドに実装を提供する必要がありま
-
Javaの最終クラス
finalとして宣言されているクラスを使用する主な目的は、クラスがサブクラス化されないようにすることです。クラスがfinalとしてマークされている場合、どのクラスもfinalクラスから機能を継承できません。 public final class Test { // body of class }