java继承中new子类对象的执行顺序

java创建对象的几种方式:

(1) 用new语句创建对象,这是最常见的创建对象的方法。
(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
(3) 调用对象的clone()方法。
(4) 运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。


下面测试代码块,静态代码块,构造器的初始化顺序

public class TestExtends {

public static void main(String[] args) {
A a = new A(5);
/*输出结果:
* B constructor
A.draw(), radius = 0
A constructor
A.draw(), radius = 5


* */
Son s = new Son();
/*输出结果:
* parent中static初始化块
son中的static初始化块
parent中的初始化块
parent构造方法
son中的初始化块
son构造方法


* */
}
}
class B {
private int radius = 10;
public void draw() {
System.out.println("B.draw(), radius = " + radius);
}
public B() {
System.out.println("B constructor");
draw();
}
}
class A extends B {
private int radius = 1;
public void draw() {
System.out.println("A.draw(), radius = " + radius);
}
public A(int radius) {
this.radius = radius;
System.out.println("A constructor");
System.out.println("A.draw(), radius = " + radius);
}
}
class Parent{  
 
    {  
        System.out.println("parent中的初始化块");  
    }  
    static{  
        System.out.println("parent中static初始化块");  
    }  
      
    public Parent(){  
        System.out.println("parent构造方法");  
    }  
}  
  
class Son extends Parent{  
    {  
        System.out.println("son中的初始化块");  
    }  
      
    static{  
        System.out.println("son中的static初始化块");  
    }  
      
    public Son(){  
        System.out.println("son构造方法");  
    }  
      
}  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值