码迷,mamicode.com
首页 > 编程语言 > 详细

Java易错题(1)

时间:2018-04-22 16:31:45      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:extends   extend   正确答案   rgs   初始化   构造   存在   易错题   void   

检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。

public class HelloB extends HelloA 
{
 public HelloB()
 {
 }
 {
     System.out.println("I’m B class");
 }
 static
 {
     System.out.println("static B");
 }
 public static void main(String[] args)
 {
     new HelloB();
 }
}
class HelloA
{
 public HelloA()
 {
 }
 {
     System.out.println("I’m A class");
 }
 static
 {
     System.out.println("static A");
 }
}
A.static A
  I’m A class
  static B
  I’m B class
B.I’m A class
   I’m B class
   static A
   static B
C.static A
   static B
   I’m A class
   I’m B class
D.I’m A class
   static A
   I’m B class
   static B

答案:C.

解析:其中涉及:静态初始化代码块、构造代码块、构造方法
当涉及到继承时,按照如下顺序执行:
1、执行父类的静态代码块 
static {
        System.out.println("static A");
    }
输出:static A
2、执行子类的静态代码块
static {
        System.out.println("static B");
    }
输出:static B
3、执行父类的构造代码块
{
        System.out.println("I’m A class");
    }
输出:I‘m A class
4、执行父类的构造函数
public HelloA() {
    }
输出:无
5、执行子类的构造代码块
{
        System.out.println("I’m B class");
    }
输出:I‘m B class
6、执行子类的构造函数
public HelloB() {
    }
输出:无

那么,最后的输出为:
static A
static B
I‘m A class
I‘m B class
正确答案:C




 

Java易错题(1)

标签:extends   extend   正确答案   rgs   初始化   构造   存在   易错题   void   

原文地址:https://www.cnblogs.com/yzh-blog/p/8907839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!