インスタンス生成時の疑問
インスタンスを生成するとき「クラス名=コンストラクタ名」にならない理由
インスタンスを生成するときに、
A a = new B();
という生成方法を見つけ、クラス名=コンストラクタ名になってないよね?という疑問を抱きました。
私の認識は、クラス作成時は必ずクラス名とコンストラクタ名は同一になるという認識ですが、継承を行なっている場合は必ずしもそういうことにならないのかな?とわからなくなりました。
該当するソースコード
class A {
public A() {
System.out.println("A");
}
}
class B extends A {
public B() {
System.out.println("B");
}
}
public class Main {
public static void main(String[] args) {
A a = new B();
}
}
実行結果
A
B
有識者の方へ
拙い文で申し訳ございません。基本的なところかもしれませんが、ご教示いただければと思います。よろしくお願いいたします。
0