meifage2211 2011-08-25 21:02
浏览 170
已采纳

子类主动使用却没有被初始化

class NewParent {

static int hoursOfSleep = (int) (Math.random() * 3.0);

static {
System.out.println("NewParent was initialized.");
}
}
class NewbornBaby extends NewParent {

static int hoursOfCrying = 6 + (int) (Math.random() * 2.0);

static {
System.out.println("NewbornBaby was initialized.");
}
}
class Example2 {

public static void main(String[] args) {
int hours = NewbornBaby.hoursOfSleep;
System.out.println(hours);
static {
System.out.println("Example2 was initialized.");
}
}

NewbornBaby调用从NewParent继承来的hoursOfSleep,说明NewbornBaby类已经主动使用,
但是为什么NewbornBaby类没有被初始化

  • 写回答

7条回答

  • freishlove 2011-08-25 21:13
    关注

    请把《深入java虚拟机》第二版翻到162页:代码上面的那段,有这样说:使用一个非常量的静态字段只有[color=red]当类或者接口的却声明了这个字段[/color]时才是主动使用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘