[解決済み】Javaの抽象インターフェース
質問
次のような例を考えてみましょう(javaでコンパイルします)。
public abstract interface Interface {
public void interfacing();
public abstract boolean interfacing(boolean really);
}
なぜ、インターフェースは抽象的な宣言が必要なのですか?また、抽象的なインターフェイスに適用される他のルールはありますか?
最後に。もし
abstract
は時代遅れなのに、なぜJavaに含まれているのですか?抽象的なインターフェースに歴史はあるのでしょうか?
どのように解決するのですか?
<ブロッククオートなぜインターフェースは抽象的な宣言が必要なのですか?
そんなことはない。
public abstract interface Interface {
\___.__/
|
'----> Neither this...
public void interfacing();
public abstract boolean interfacing(boolean really);
\___.__/
|
'----> nor this, are necessary.
}
インターフェースとそのメソッドは、暗黙のうちに
abstract
であり、この修飾子を付けても何も変わりません。
抽象的なインターフェースで適用される他のルールはありますか?
いいえ、同じ規則が適用されます。そのメソッドは、任意の(具象)実装クラスによって実装されなければなりません。
abstractが時代遅れなら、なぜJavaに含まれているのですか?abstractインターフェースに歴史はあるのでしょうか?
面白い質問ですね。を掘り起こしました。 第一 JLSの版では、そこでもこう書かれています。 "この修飾子は時代遅れなので、新しいJavaプログラムでは使用しないでください" .
なるほど。 さらに掘り下げる ... 数々のリンク切れに見舞われた後、なんとかオリジナルのコピーを見つけました オーク0.2 仕様 (または "manual")です。このマニュアルは非常に興味深い内容で、全部で38ページしかありません! :-)
セクション5「インターフェイス」では、次のような例が紹介されています。
public interface Storing {
void freezeDry(Stream s) = 0;
void reconstitute(Stream s) = 0;
}
そして、余白にはこう書かれています。
将来的には、インターフェイスでメソッドを宣言する際の " =0" の部分はなくなるかもしれません。
仮定の話
=0
に置き換わりました。
abstract
というキーワードを疑っています。
abstract
は、ある時期からインターフェイスメソッドに必須となりました
関連
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] 抽象メソッドと仮想メソッドの違いは何ですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 未処理の例外タイプIOException」が表示されるのですが?
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] Androidのコールバックとは何ですか?重複
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] SubclipseとJavaHLのインストールで頭を悩ます
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] 何も取らず何も返さない関数型インターフェイス [重複]。