日期:2014-05-20  浏览次数:20675 次

抽象类能否被实例化
本帖最后由 wangxiaokang1_1 于 2013-03-23 10:42:41 编辑
原理上说不可以,但是我在jdk中发现有好多抽象类都被实例化了,例如calendar类,FormatDate类谁能解释下。
抽象类能否被实例化?? calender

------解决方案--------------------
看看对应方法的源码,其实实例化的是一个子类
------解决方案--------------------
引用:
引用:看看对应方法的源码,其实实例化的是一个子类

calender源代码如下:
 public static Calendar getInstance()
    {
        Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault()……


createCalendar()肯定是根据时区和语言环境来创建Calendar的。sun.util.BuddhistCalendar这个类src.zip没有给源码,但是有这句话就够了:
public class sun.util.BuddhistCalendar extends java.util.GregorianCalendar

因为GregorianCalendar是Calender的子类,所以sun.util.BuddhistCalendar也是Calendar的子类了。(至于具体的实现,java底层封装好了的)