[解決済み] インターフェイスのコンストラクタ?
2022-04-25 08:13:03
質問
インターフェイスにコンストラクタを定義することができないのは知っています。しかし、非常に便利だと思うので、なぜなのか不思議です。
つまり、あるクラスのいくつかのフィールドは、このインターフェイスのすべての実装に対して定義されていることを確認することができます。
例えば、次のようなメッセージ・クラスを考えてみましょう。
public class MyMessage {
public MyMessage(String receiver) {
this.receiver = receiver;
}
private String receiver;
public void send() {
//some implementation for sending the mssage to the receiver
}
}
メッセージ・インターフェースを実装するクラスを増やすために、このクラスのインターフェースを定義する場合、sendメソッドしか定義できず、コンストラクタは定義できません。では、このクラスのすべての実装が本当に受信機セットを持つことを保証するには、どうすればよいでしょうか?もし私が
setReceiver(String receiver)
このメソッドが本当に呼び出されているかどうか、確認することができないのです。コンストラクタでそれを確認することができます。
どのように解決するのですか?
説明されたことをいくつか取り上げます。
<ブロッククオートあるクラスのいくつかのフィールドが、そのクラスで定義されていることを確認することができます。 このインターフェイスのすべての実装があります。
"このクラスのInterfaceを定義して、さらに別のクラスを持つことができるようにする。 メッセージインターフェイスを実装するクラスで、私が定義できるのは sendメソッドとコンストラクタは含まれません。
...これらの要件は、まさに 抽象クラス は、そのためのものです。
関連
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] いつ使うか。Java 8+のインターフェイスのデフォルトメソッドと、抽象的なメソッドの比較
-
[解決済み] コンストラクタのシグネチャを定義するインターフェース?
-
[解決済み] Javaインターフェースでスタティックメソッドを定義できないのはなぜですか?
-
[解決済み】「インターフェースに合わせたプログラム」とはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
IllegalArgumentException この例外を解決する方法
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
Javaエラーメッセージがenclosingクラスでない
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。