当子类继承父类,其子类和父类中静态代码块,构造代码块,无参构造之间的输出顺序

来源:互联网 发布:mac n卡 hdmi音频输出 编辑:程序博客网 时间:2024/06/11 16:51

今天无意中看到了这道“坑”的题目,说实话,如果对静态代码块,普通代码块和无参构造它们概念不理解的话,这确实,考试出了这样的题目,那这就真的是老师眼中的送分题,我们眼里的送命题,纯靠猜,废话不多说,先上代码才是真的

package text;class TextA{TextA() {System.out.println("我是父类无参构造函数");}{System.out.println("我是父类构造代码块");}static{System.out.println("我是父类静态代码块");}}public class TextB extends TextA{public TextB() {System.out.println("我是子类无参构造函数");}{System.out.println("我是子类构造代码块");}static{System.out.println("我是子类静态代码块");}public static void main(String[] args) {//测试TextB textB = new TextB();}}

输出结果如下:



无参构造:在没有写有参构造的时候,创建对象时,系统默认就会调用无参构造,用于初始化,只被执行一次,是随着对象的加载而加载,由于TextB继承了TextA,其实在TextB中的无参构造调用之前,先用了super()方法,调用了父类的无参构造,毕竟是先有爸爸才有儿子嘛

构造代码块:位于类体中,特点:给对象进行初始化的,执行时机在构造函数前,对象一建立就会立即执行

静态代码块:位于类体中,被static修饰的内容随着类的加载而加载,静态代码块的执行时机在main函数之前,只会被执行一次

可能讲的不是很清楚,还要多练习才行

阅读全文
1 0
原创粉丝点击