gyang373
发贴: 6
积分: 0
|
于 2004-09-09 16:14
请教大家一个问题,关于类装载、实例化。 class CData{ CData(){System.out.println("data is set");} } class LoadP{ static CData cd1 = new CData(); private CData cd2 = new CData(); LoadP(){System.out.println("parent construct");} } class LoadC extends LoadP{ LoadC(){System.out.println("child construct");} } class LoadC2 extends LoadP{ LoadC2(){System.out.println("another child construct");} } class LoadTest{ LoadTest(){System.out.println("init");} public static void main(String[] args){ LoadC lc = new LoadC(); LoadC2 lc2 = new LoadC2(); } } 如上所述, 1、执行LoadC lc=new LoadC()时;先装入LoadP.class,再装入LoadC.class,不知正确否(将CData视为数据,暂不讨论)? 2、执行实例化时,根据.class 给实例变量分配内存,而不给方法和类变量分配? 3、cd2为父类的私有变量,为什么实例化其子类时,也要为cd2分配内存? 4、如果父类是抽象类,情况变为什么? 还希望专家具体分析一下,实例化是内存的具体分配过程
|