java继承小题二

class Test2_Extends {
public static void main(String[] args) {
Zi z = new Zi();
}
/*
1,jvm调用了main方法,main进栈
2,遇到Zi z = new Zi();会先将Fu.class和Zi.class分别加载进内存,再创建对象,当Fu.class加载进内存
父类的静态代码块会随着Fu.class一起加载,当Zi.class加载进内存,子类的静态代码块会随着Zi.class一起加载
第一个输出,静态代码块Fu,第二个输出静态代码块Zi
3,走Zi类的构造方法,因为java中是分层初始化的,先初始化父类,再初始化子类,所以先走的父类构造,但是在执行
父类构造时,发现父类有构造代码块,构造代码块是优先于构造方法执行的所以
第三个输出构造代码块Fu,第四个输出构造方法Fu
4,Fu类初始化结束,子类初始化,第五个输出的是构造代码块Zi,构造方法Zi
*/
}
class Fu {
static {
System.out.println("静态代码块Fu");
}

{
System.out.println("构造代码块Fu");
}

public Fu() {
System.out.println("构造方法Fu");
}
}

class Zi extends Fu {
static {
System.out.println("静态代码块Zi");
}

{
System.out.println("构造代码块Zi");
}

public Zi() {
System.out.println("构造方法Zi");
}
}

原文地址:http://blog.51cto.com/357712148/2131491

时间: 2024-10-14 15:24:02

java继承小题二的相关文章

java微信小程序参数二维码生成带背景图加字体(无限生成)

需求 :  1,因为项目需求 ,生成数以万计的二维码    2 ,每个二维码带不同的参数  3,二维码有固定背景图 4 , 往生成图片上写入 字体和编号(动态 ) 设计技术 :    1,微信接口token ,nginx 缓存  2,二维码 图片定义 写字 maven <dependency> <groupId>com.twelvemonkeys.imageio</groupId> <artifactId>imageio-jpeg</artifactI

JAVA常见算法题(二十四)

package com.xiaowu.demo; //一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. public class Demo24 { public static void main(String[] args) { f2(123454321); } // 方法一 public static void f1(int n) { if (n >= 10000 && n < 100000) { String s = String.va

JAVA常见算法题(二十八)

package com.forezp.util; import java.util.Arrays; /** * 两个int数组,都是从小到大的的排列,请合并为一个新的数组,也是从小到到大的排列, * 请写出性能最优的算法.<br> * * * * @author Administrator * */ public class ArrayDemo1 { public static void main(String[] args) { int[] a = { 1,3,5,7,9}; int[] b

JAVA常见算法题(二十九)

package com.forezp.util; import java.util.Scanner; /** * 判断输入的5个字符串的最大长度,并输出 * * * @author Administrator * */ public class StringDemo{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String[] str =new String[5]; for(int x

Java 继承 小练习

编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表.然 后再编写一个A类的子类B,要求子类B必须继承类A的方法f(不允许重写), 子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子 类新增的方法g输出大写的英文字母表.最后编写主类C,在主类的main方法 中测试类A与类B. package xiaolianxi; public class A { public void f () { System.out.println("abcdefg"); } }

JAVA常见算法题(二十)

package com.xiaowu.demo; /** * * 打印出如下图案(菱形) * * * * @author WQ * */ public class Demo20 { public static void main(String[] args) { display(5); } public static void display(int h) { for (int i = 0; i < (h + 1) / 2; i++) { for (int j = 0; j < h / 2 -

JAVA常见算法题(二十三)

package com.xiaowu.demo; /** * 给一个不多于5位的正整数,要求:①求它是几位数:②逆序打印出各位数字. * * * @author WQ * */ public class Demo23 { public static void main(String[] args) { f(123789); } public static void f(long l) { String s = Long.toString(l); char[] c = s.toCharArray(

JAVA常见算法题(二十一)

package com.xiaowu.demo; //求1+2!+3!+...+20!的和. public class Demo21 { public static void main(String[] args) { sum(20); } public static void sum(int n) { long sum = 0; long fac = 1; for (int i = 1; i <= n; i++) { fac *= i; sum += fac; } System.out.pri

JAVA常见算法题(二)

package com.xiaowu.demo; /** * 判断101-2000之间有多少个素数,并输出所有素数. * 质数(prime number)又称素数,有无限个.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数. * @author WQ * */ public class Demo2 { public static void main(String[] args) { prime(); } public static void prime() { int