首页 > 学院 > 开发设计 > 正文

关于子父类中调用顺序的小结

2019-11-08 03:22:50
字体:
来源:转载
供稿:网友

package demo;

public class Test3 { public static void main(String[] args) {  new B().run(); }}

class A{ static{  System.out.PRintln("A static ;"); } {  System.out.println("A defalult ;"); } A(){  System.out.println("A Class"); } void run(){  System.out.println("A run"); }}

class B extends A{ static{  System.out.println("B static ;"); } {  System.out.println("B defalult ;"); } B(){  System.out.println("B Class"); } void run(){  System.out.println("B run"); }}

 

运行结果:

A static ;B static ;A defalult ;A ClassB defalult ;B ClassB run

总结 : 生命子类对象时 总是先去加载父类的静态代码块,然后加载子类的静态代码块(静态代码永远是最先加载的),然后会加载父类中的默认代码块 和父类构造方法,然后是子类.

优先级: 静态代码块>代码块>构造方法    父类优先于子类

注意: 新建子类对象时  必须会加载父类构造器!

 


上一篇:实习零散知识

下一篇:AMQP-cpp 开发

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表