オーバーライドコンストラクタと大きく混乱しています。コンストラクタをオーバーライドすることはできません私はグーグルでそれを検索するとき、私はこれを実行するとコンストラクタのオーバーライド
In Super constructor
In Sub.test()
In Sub constructor
In Sub.test()
PLSは、サブクラスで試験方法を注意して、私の質問は、私は結果を
public class constructorOverridden {
public static void main(String args[]) {
Sub sub = new Sub();
sub.test();
}
}
class Super {
Super() {
System.out.println("In Super constructor");
test();
}
void test() {
System.out.println("In Super.test()");
}
}
class Sub extends Super {
Sub() {
System.out.println("In Sub constructor");
}
void test() { // overrides test() in Super
System.out.println("In Sub.test()");
}
}
得ている何を得る結果であります実行される。スーパークラスのコンストラクタがオーバーライドされていることを示していますか?それが正しいかどうか?
次に、「コンストラクタでオーバーライドされたメソッドを呼び出す」ことを回避するには、どのようなアプローチを使用する必要がありますか?私が達成しようとしていたのは、抽象メソッドinit()、build()、そしてfill()を呼び出すスーパークラスコンストラクタの基本的な流れです。そのため、すべてのサブクラスで同じフローを実行する必要があります。 – Akshat
@Akshat:「文書は非常にはっきりと」分類されているようです。通常、これを中心にいくつかの設計方法がありますが、一般的なレシピを与えるのは難しいです。 –
あなたがそれらの方法へのリンクを与えることができれば、それは素晴らしいことでしょう! – Akshat