黑马程序员技术交流社区

标题: 来个面试题 [打印本页]

作者: 向北_    时间: 2016-3-19 22:16
标题: 来个面试题
  1. class HelloA {

  2.     public HelloA() {
  3.         System.out.println("HelloA");
  4.     }
  5.    
  6.     { System.out.println("I'm A class"); }
  7.    
  8.     static { System.out.println("static A"); }

  9. }

  10. public class HelloB extends HelloA {
  11.     public HelloB() {
  12.         System.out.println("HelloB");
  13.     }
  14.    
  15.     { System.out.println("I'm B class"); }
  16.    
  17.     static { System.out.println("static B"); }
  18.    
  19.     public static void main(String[] args) {
  20.      new HelloB();
  21.    }

  22. }
复制代码



求输出结果
作者: huanlong579    时间: 2016-3-19 22:26
顶一个,看过这块内容,又忘了,正好复习下,谢了
作者: 陈文广    时间: 2016-3-20 12:28
1.static A
2.static B
3.I'm A class
4.HelloA
5.I'm B class
6.HelloB
先加载类文件,执行静态代码块,后父类初始化,再子类初始化,先构造代码块,再构造方法
作者: lgdbest    时间: 2016-3-20 13:21
static A
static B
I'm A class
HelloA
I'm B class
HelloB
静态代码块在类加载的时候 就已经加载,可以用类名直接调用
作者: sd1571565    时间: 2016-3-20 17:05
static A
static B
I'm A class
HelloA
I'm B class
HelloB
静态代码块先加载
先是父类的 静态,然后子类的
接着是父类的构造代码块   构造方法
最后就是子类的构造代码块 和构造方法
另外程序里面父类没有public 权限,而子类有public权限
编译时会报错的
作者: 丿若恋灬如初    时间: 2016-3-20 17:24
static A
static B
I'm A class
HelloA
I'm B class
HelloB
static静态代码块,先执行父类的,然后子类
因为继承关系,先执行父类的构造代码块 构造方法
最后就是子类的构造代码块 和构造方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2