何らかの理由で、私が暗黙のうちにsuper()
を呼びたくないと仮定します。これはデフォルトで行われます。Javaでのsuper()のデフォルト呼び出しを避けることができますか?
class Animal {
public Animal() {
System.out.println("Constructing an animal.");
}
}
class Dog extends Animal {
public Dog() {
System.out.println("Constructing a dog.");
}
public static void main(String[] a) {
new Dog();
}
}
新しい犬を作るときsuper()
が呼び出されることをデフォルトの動作を「無効」にする方法はありますか?あるいは、それは主に概念的に間違っていますか?
つまり、サブクラスのコンストラクタだけを必要とし、ベースクラスの構築を呼び出さずにベースクラスを継承する場合があります。
唯一の方法は、 'public Animal(String name)'コンストラクタがある場合は、別の既存のスーパーコンストラクタ、たとえば 'super(" Rex ");を呼び出すことです。 – Berger
この例では問題が明らかです。しかし、それは不可能なように思われるので、別の方法で見つけることができます。なぜあなたはsuper()への呼び出しをしたくないのですか? – bracco23