当前位置: 代码迷 >> Java相关 >> 抽象类可否被实例化
  详细解决方案

抽象类可否被实例化

热度:209   发布时间:2016-04-22 21:56:38.0
抽象类能否被实例化
本帖最后由 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底层封装好了的)
  相关解决方案