Javaの継承について質問です。
私は2つのクラスを持ってAおりB、クラスBはAから継承しています:
public class A {
public A() {
System.out.println("Hi!");
}
}
public class B extends A {
public B() {
System.out.println("Bye!");
}
public static void main(String[] args) {
B b = new B();
}
}
プログラム B を実行すると、出力は次のようになります。
Hi!
Bye!
質問: のコンストラクターが
class A呼び出されるのはなぜclass Bですか?
私は、B が A からすべてのものを継承していることを知っています - すべてのインスタンスまたはクラス変数、およびすべてのメソッド。この意味で、B のオブジェクトは A のすべての特性に加えて、B で定義されたいくつかの他の特性を持っています。しかし、私は知りませんでしたし、知りませんでした」タイプ B のオブジェクトを作成すると、A のコンストラクターも呼び出されると想像してみてください。だから、これを書く:
B b = new B();
タイプ B とタイプ A の 2 つのオブジェクトを作成します。
これは面白くなってきました、
誰かがなぜこれが起こるのか説明できますか?