さまざまなケースでのクラス インスタンスの初期化を理解したい..
JLS-7 セクション 12.5 では、最終的なインスタンス変数がいつどのように初期化されるかについての言及はありませんでした。final として宣言されたインスタンス変数の場合の動作を理解するために参照できる人がいますか?
public class Test {
public static void main(String args[]){
Child c1 = new Child();
}
}
class Parent{
final int a =30;
Parent(){
System.out.println("From super Contsrutor "+a);
meth();
}
void meth(){
System.out.println("From super");
}
}
class Child extends Parent{
final int e=super.a;
int b=30;
void meth(){
System.out.println("From Sub e=" +e+", b="+b);
}
}
次のような出力を与えています
From super Contsrutor 30
From Sub e=0,b=0
一方
public class Test {
public static void main(String args[]){
Child c1 = new Child();
}
}
class Parent{
final int a =30;
Parent(){
System.out.println("From super Contsrutor "+a);
meth();
}
void meth(){
System.out.println("From super");
}
}
class Child extends Parent{
final int e=a;
void meth(){
System.out.println("From Sub " +e);
}
}
として出力を与えています
From super Contsrutor 30
From Sub 30