[解決済み] super()はいつ使うのですか?
2023-05-30 14:37:43
質問
現在、Javaの授業でクラス継承について学んでいるのですが、どのような場合に
super()
を呼び出すのか?
編集してください。
私はこのコード例を見つけました。
super.variable
が使われます。
class A
{
int k = 10;
}
class Test extends A
{
public void m() {
System.out.println(super.k);
}
}
ということで、ここでは
super
にアクセスするために
k
変数にアクセスすることができます。しかし、それ以外の場合、何をするかというと
super();
は何をするのでしょうか?それ自体で?
どのように解決するには?
呼び出し
まさに
super()
は
常に
を冗長にしています。 そうでなければ暗黙のうちに行われることを明示的に行っているのです。 なぜなら、スーパーコンストラクタの呼び出しを省略すると、無引数のスーパーコンストラクタがとにかく自動的に呼び出されるからです。 それが悪いスタイルだと言っているわけではありません。
しかし、これが役に立つのは、スーパーコンストラクタがサブクラスから渡したい引数を取っている場合です。
public class Animal {
private final String noise;
protected Animal(String noise) {
this.noise = noise;
}
public void makeNoise() {
System.out.println(noise);
}
}
public class Pig extends Animal {
public Pig() {
super("Oink");
}
}
関連
-
org.xml.sax.SAXParseExceptionのエラー解決方法
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] 静的メソッドを使用する場合
-
[解決済み] Pythonで'super'は何をするのですか?- super().__init__() と明示的なスーパークラス __init__() の違い
-
[解決済み] Javaインターフェースでスタティックメソッドを定義できないのはなぜですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
-
[解決済み】PECS(Producer Extends Consumer Super)って何?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
無効な文字定数
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
Javaがテキストファイルを読み込む
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
eclipse にリソースリーク:'in' が閉じない
-
アクセス制限の解決方法: ---- in Java
-
[解決済み] ポリモーフィズム vs オーバーライド vs オーバーローディング