1.变量是 static final 修饰的“编译期常量”,如 public static final String c = "C";
public class Test {public static void main(String[] args) {System.out.println(A.c);}}class A {public static final String c = "C";static {System.out.print("A");}
}运行结果如下:C
public class Test {public static void main(String[] args) {System.out.println(B.c);}}
class A {public static final String c = "C";static {System.out.print("A");}
}
class B extends A {static {System.out.print("B");}
}运行结果如下:C
public class Test {public static void main(String[] args) {System.out.println(B.c);}}
class A {static {System.out.print("A");}
}
class B extends A {public static final String c = "C";static {System.out.print("B");}
}运行结果如下:C
2.变量是 static final 修饰的“非编译期常量”,如 public static final String c = new String("C");
public class Test {public static void main(String[] args) {System.out.println(A.c);}}
class A {public static final String c = new String("C");static {System.out.print("A");}
}运行结果如下:AC
public class Test {public static void main(String[] args) {System.out.println(B.c);}}
class A {public static final String c = new String("C");static {System.out.print("A");}
}
class B extends A {static {System.out.print("B");}
}运行结果如下:AC
public class Test {public static void main(String[] args) {System.out.println(B.c);}}
class A {static {System.out.print("A");}
}
class B extends A {public static final String c = new String("C");static {System.out.print("B");}
}运行结果如下:ABC
3.变量是static 修饰,如 public static String c = "C";
public class Test {public static void main(String[] args) {System.out.println(A.c);}}
class A {public static String c = "C";static {System.out.print("A");}
}运行结果如下:AC
public class Test {public static void main(String[] args) {System.out.println(B.c);}}
class A {public static String c = "C";static {System.out.print("A");}
}
class B extends A {static {System.out.print("B");}
}运行结果如下:AC
public class Test {public static void main(String[] args) {System.out.println(B.c);}}
class A {static {System.out.print("A");}
}
class B extends A {public static String c = "C";static {System.out.print("B");}
}运行结果如下:ABC