这个应该不是坑吧,只不过容易错,记录一下:
继承关系
aFunClass : BaseFunClass
问题描述:
BaseFunClass 构造器中有抽象方法 baseInit()
aFunClass 重写 baseInit()
方法, 此类中定义 var selectList = ArrayList<MyFolderViewVo
;
然后在 重写的baseInit
方法中使用 selectList ,此时为null, 然后就没有然后了,需在在baseInit中初始化;
原因分析
因为调用子类构造器后, 直接先调用父类构造器进行父类的类加载过程;
而此时子类还没有进行类加载过程 ,在链接-准备阶段才会赋值;因此父类的重写方法中子类的变量还没有赋值,需要赋值;
应该是这样吧,哪里不对,欢迎提出~