Javaでは、インターフェイス変数はデフォルトで静的で最終的なものですが、なぜですか?
インターフェースは、どのように実装すべきかではなく、動作のプロトコルを定義します。インターフェースを実装するクラスは、そのインターフェースによって定義されたプロトコルに準拠します。
- Javaインターフェースはそれ自体でインスタンス化できないため、インターフェース変数は静的です。変数の値は、インスタンスが存在しない静的コンテキストで割り当てる必要があります。
- 最後の修飾子は、インターフェース変数に割り当てられた値が、再割り当てできない真の定数であることを保証します。つまり、インターフェースは定数のみを宣言でき、インスタンス変数は宣言できません。
テンプレート:
interface interfaceName{ // Any number of final, static variables datatype variableName = value; // Any number of abstract method declarations returntype methodName(list of parameters or no parameters); }
-
Javaのデフォルトコンストラクターとパラメーター化コンストラクターの違いは何ですか?
デフォルトコンストラクタ デフォルトのコンストラクターは0引数コンストラクターです これには、スーパークラスコンストラクターへの引数なしの呼び出しが含まれています。 新しく作成されたオブジェクトにデフォルト値を割り当てることは、デフォルトコンストラクタの主な責任です。 コンパイラは、プログラムがクラスにコンストラクタを書き込まない場合にのみ、デフォルトのコンストラクタをコードに書き込みます。 デフォルトコンストラクタのアクセス修飾子は常にクラス修飾子と同じですが、このルールは「パブリック」にのみ適用されます。 および「デフォルト」 修飾子。 コンパイラがデフォルトのコンストラクタを追加する
-
なぜインターフェースがJavaに導入されたのですか?
インターフェースは、クラスが実行できることの契約です。 クラスがインターフェースを実装する場合、インターフェースで宣言されたすべての抽象メソッドに実装を提供できます。インターフェイスは一連の一般的な動作を定義します。クラスはインターフェイスを実装し、これらの動作に同意し、動作に独自の実装を提供します。 インターフェースの主な用途の1つは、2つのオブジェクト間の通信コントラクトを提供することです。 クラスがインターフェイスを実装していることがわかっている場合、クラスにはそのインターフェイスで宣言されたメソッドの具体的な実装が含まれていることがわかり、これらのメソッドを安全に呼び出すことが保証され