您的位置:首页 > 编程语言 > Java开发

Java子父类初始化顺序,及重写方法后的访问修饰符,异常抛出

2017-08-27 16:52 309 查看
当一个类被初始化的时候,发现它的父类尚未初始化,会先去初始化父类;

重写方法的访问修饰符只能扩大或同等,不能缩小

重写方法的异常抛出只能越是精确的异常,而不能抛出更大范围的异常,精确的程度可以直到没有异常抛出。

/**
* @author Cherish
* @version 1.0
* @date 2017/8/27 16:32
*/
public class Main {
public static void main(String[] args) {
B a = new B();
A b = new B("ssss");
}

static class A {
static {
System.out.print("static A,");
}
public A(){
System.out.print("construct A,");
}

protected void aa() throws RuntimeException {
System.out.println("aa");
}
}

static class B extends A {// 若父类尚未初始化,得首先初始化父类
static {
System.out.print("static B,");
}
public B(){
System.out.print("construct B,");
}

public B(String s) {
System.out.print("construct B, s = " + s);
}

// 访问修饰符只能是扩大
public void aa() {// 抛异常,是越精确(这里如果抛出Exception是错误的),直至可以没有异常
System.out.println("true = " + true);
}
}
}


上面的代码运行得到如下的输出内容

static A,static B,construct A,construct B,construct A,construct B, s = ssss
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class 类加载器
相关文章推荐