现在的位置: 首页 > 综合 > 正文

Java继承结构中类的初始化

2013年09月07日 ⁄ 综合 ⁄ 共 1066字 ⁄ 字号 评论关闭

    初学者测试

    昨天自考考了《java程序语言设计》,有点不太记得类的初始化过程了,顺便复习了一下。

    同样准备了测试题一枚。把自己的email分散到输出中,如果正确输出,说明分析正确了。

    不行怎么行,这是基础。下面程序请先分析,如果结果(用白色字体是输出结果)正确,说明您对java类的初始化已经很熟悉,算是过关,如果没有,那赶紧复习吧。

 

package nie.test.extend;  

/** 子构造子的初始化过程: 
 * @author dotjar 
 *  1.父static域 
 *  2.父static块 
 *  3.子static域 
 *  4.子static块 
 *  5.父普通域
 *  6.父普通块{} 
 *  7.父构造子 
 *  8.子普通域
 *  9.子普通块{} 
 *  10.子构造子 
 */  
public class Test {  
    public static void main(String[] args) {  
        new Son("s");  
    }  
}  

class Father {  
    static protected String s = "father_static_property_string";  //1
    protected String b = "father_normal_property_string";  //5
    static {  
        s = "o";  //2
        System.out.print("d");  
        System.out.print(s);  
    }  
    {  
        b="r";  //6
        System.out.print("a");  
        System.out.print(b);  
    }  

    Father() {  
        this("@");  
        System.out.print("1");  //8
    }  

    Father(String s) {  
        System.out.print(s);  //7
    }  
}  

class Son extends Father {  
	public static String s = "son_static_property_string"; //3
	public String b = "son_normal_property_string"; //9
    static {  
        s = "j";  //4
        System.out.print("t");  
        System.out.print(s);  
    }  
    {  
        b = "3";  //10
        System.out.print("6");  
        System.out.print(b);  
    }  

    Son() {  
        System.out.print(".");  //11
    }  

    Son(String s) {  
        this();  
        System.out.print("com");  //12
    }  
}  

 

 测试完自己的输出,可以用鼠标选中下一行,检查。

这里:dotjar@163.com

 

 

抱歉!评论已关闭.