我们先看下以下代码,你觉得最终输出的结果是什么呢?
public class A {
{System.out.println("A代码块");}
static {
System.out.println("A静态代码块");
}
public A() {
System.out.println("A构造方法");
}
}
public class B extends A{
{System.out.println("B代码块");}
static {
System.out.println("B静态代码块");
}
public B() {
System.out.println("B构造方法");
}
public static void main(String[] args) {
B b = new B();
}
}
1.子类B类依赖于父类A,所以JVM会首先执行父类的方法,静态方法优于普通方法执行,代码块优于构造方法执行。
2.代码块的作用一般用于类或者对象的初始化,例如可以将多个构造方法中的相同的代码放到代码块中,对对象进行初始化。
最终程序输出的结果为
A静态代码块
B静态代码块
A代码块
A构造方法
B代码块
B构造方法
总结规律有3条:
1. 父类优于子类执行; 2. 静态方法优于普通方法; 3. 代码块优于构造方法。
===============================================================
推荐一个公众号:外卖小冰糖
领券下单更便宜,一起薅平台羊毛,所得俑金对半分,超过0.3元即可返回无套路。
他主要有以下几点优势:
1.安静:不会每天推送消息打扰人。
2.返俑:你每下一个单都会获得一定的俑金,每单能拿到0.5-1元这样的金额,每天晚上8点左右自动通过微信零钱转给你,首次下单额外补贴0.5元俑金。
3.公众号内部提供一些小游戏,无聊的时候可以玩一玩,如:人生重开变态版,2048,飞机滑行等小游戏。
4.提供一些工具类的功能,如查看每日天气,每日英语,二维码生成,短链生成等。
希望能帮助到大家,祝大家生活愉快!!