书上说,Celendar类是抽象类,它无法实例化,那就是说它不能产生实例对不?然而在Calendar getInstance():这么说到:返回默认地区和时区的Calendar对象,此对象是一个实例吗?还有boolean before(Object c):这么说到,calendar实例的当前时间在Calendar对象c之后(请问这里的实例和对象是不是一回事?);
不是抽象类不能有具体的实例产生吗?如上的实例又是咋回事呀?我是一个迷茫的小羔羊?

解决方案 »

  1.   

    Calendar 类是一个抽象类, 它确实无法实例化。与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:         Calendar rightNow = Calendar.getInstance();而不是 Calendar date = new Calendar()这样的直接的实例化形式, 也就是说并不是抽象类产生了实例。只是产生了一个Calendar这个抽象类型的实例。更详细的对Calendar的描述和before的问题, 请参看:
    http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html
      

  2.   

    Celendar类是抽象类,它无法实例化,这是对的.而且Calendar也有一个直接继承的子类叫GregorianCalendar 他是可以实例化的,看来你还并不是很懂查api.要多练练:)
    Calendar getInstance():他是返回一个继承了Calendar的子类对象.这就可以了,通过多态来调用Calendar的方法.
      

  3.   

    Calendar getInstance():他是返回一个继承了Calendar的子类对象.这就可以了,通过多态来调用Calendar的方法.
    还是不太明白,在Calendar getInstance()的时候,jvm怎么知道要返回Calendar的哪一个实例化对象?jvm会自动检查它有那些子类么?如果有多个实现子类,怎么返回:?
      

  4.   

    lennonwang()  你的问题我已经回答你了,还不明白的短信我
      

  5.   

    可以说它象接口一样,你不可以 new他,但却可以声明他的引用,把子类对象赋给他