[解決済み] なぜJavaではsuper.super.method();が許されないのですか?
2022-03-24 21:24:22
質問
読む この質問 と書くことができれば、簡単に解決する(しなくても解決しないわけではない)のではないかと思いました。
@Override
public String toString() {
return super.super.toString();
}
多くの場合、役に立つかどうかは分かりませんが、どうでしょうか。 何故 他の言語にはないのでしょうか?
皆さんはどう思われますか?
EDITです。 はっきり言うと、そうなんです、Javaでは不可能なことで、それを見逃すことはないんです。これは私がうまくいくと思っていたことではなく、コンパイラーエラーが出たことに驚いているのです。私はちょうどアイデアを持っていたし、それを議論するのが好きです。
どのように解決するのですか?
カプセル化に違反している。親クラスの振る舞いを迂回することはできないはずです。を迂回できることがあるのは理にかなっています。 自分の クラスの動作は (特に同じメソッド内で) 制御できますが、親の動作は制御できません。例えば、ベースとなる "collection of items" があり、そのサブクラスが "a collection of red items" を表し、そのサブクラスが "a collection of big red items" を表しているとする。持つことに意味があるのです。
public class Items
{
public void add(Item item) { ... }
}
public class RedItems extends Items
{
@Override
public void add(Item item)
{
if (!item.isRed())
{
throw new NotRedItemException();
}
super.add(item);
}
}
public class BigRedItems extends RedItems
{
@Override
public void add(Item item)
{
if (!item.isBig())
{
throw new NotBigItemException();
}
super.add(item);
}
}
RedItemsは、それが含むアイテムがすべて赤であることを常に確信できるのです。では でした。 super.super.add()を呼び出すことができるようになりました。
public class NaughtyItems extends RedItems
{
@Override
public void add(Item item)
{
// I don't care if it's red or not. Take that, RedItems!
super.super.add(item);
}
}
これで、好きなものを何でも追加できるようになりました。
RedItems
が壊れている。
これって意味があるんでしょうか?
関連
-
java.util.NoSuchElementException 原因解析と解決方法
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み】なぜ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: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
Spring Boot による HTTPS アクセスの設定
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
javaでよく使われる英単語
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
IDEA パッケージステートメントの欠落