class A{
public A(){
System.out.println("AAA");
}
{
System.out.println("456");
}
}public class B extends A{
B(){
this(12);
System.out.println("BBB");
}
B(int x){
System.out.println("CCC");
}
{
System.out.println("123");
}
public static void main(String[] args){
new B();
}
}
上述代码运行结果为:
456
AAA
123
CCC
BBB小弟是java初学者,老是弄不明白运行结果为什么会是那个样子,请各位大师指教一下,小弟在这里先谢过了!
public A(){
System.out.println("AAA");
}
{
System.out.println("456");
}
}public class B extends A{
B(){
this(12);
System.out.println("BBB");
}
B(int x){
System.out.println("CCC");
}
{
System.out.println("123");
}
public static void main(String[] args){
new B();
}
}
上述代码运行结果为:
456
AAA
123
CCC
BBB小弟是java初学者,老是弄不明白运行结果为什么会是那个样子,请各位大师指教一下,小弟在这里先谢过了!
这是JAVA的上溯吧
先上溯到A
再回
我不明白{}{}连一起什么意思
建议看下TTJ,应该有的
new B()----------->new A()----------->B(12) ------------->BBB
\- 456 AAA \- 123 CCC \- BBB
2.类的块语句({}中的语句)会比构造函数先调用,还有一种静态块语句.
3.没有参数的构造函数可以用this调用其它有参的构造函数
-----------------
1)new B()之前要new A();子类对象初始化之前先初始化基类
2){System.out.println("456");}是non-static 实体初始化在构造方法之前执行
3)this(12);调用构造方法B(int x)