我有一个关于 Java 继承的问题。
我有两个类A
andB
和类 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 类型。
这越来越有趣了,
有人可以解释为什么会发生这种情况吗?