今天看到单例模式的登记式单例可以实现单例继承的问题。
详情请见:http://www.iteye.com/topic/146218
问题是: 为什么最后说"由于父类的实例必须存在才可能有子类的实例"呢?
创建子类对象的时候也没用到父类的实例啊 仅仅用到了父类的静态方法而已不是吗?
今天看到单例模式的登记式单例可以实现单例继承的问题。
详情请见:http://www.iteye.com/topic/146218
问题是: 为什么最后说"由于父类的实例必须存在才可能有子类的实例"呢?
创建子类对象的时候也没用到父类的实例啊 仅仅用到了父类的静态方法而已不是吗?
创建子类对象时:
1、必须先加载和初始化父类 才能加载和初始化子类(有例外 如使用final字段时)
2、new 创建对象并分配空间
3、执行父类的构造器初始化(默认调用空参 即子类构造器第一行默认为super();//我们可以改写),再执行子类构造器初始化
由于父类的实例必须存在才可能有子类的实例 这句不对 请参考上边(只有一个子类实例)