嗯,抽象类是不能实例化。但是不代表没有实例,就像单例设计模式,它不让外界创建对象,但是他提供方法让外界直接获取一个对象。
抽象类同样可以像普通类一样调用他的静态方法,getInstance()就是Calendar的静态方法,得到实例对象。
这是源码,可以看出在方法内部创建了一个对象,用于方法返回。至于这个对象是怎么创建的,楼主可以看下源码。- public static Calendar getInstance()
- {
- Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault(Locale.Category.FORMAT));
- cal.sharedZone = true;
- return cal;
- }
复制代码 |