to gularess() :谢谢你,可是,同上,在没有子类的情况下,它怎么可以生成一个子类来返回呢?
Calendar中的源代码: /** * Gets a calendar using the default time zone and locale. * @return a Calendar. */ public static synchronized Calendar getInstance() { return new GregorianCalendar(); }
嗯,现在从源码看来,的确是 return new GregorianCalendar();应该是一个子类但是这样子 public class GregorianCalendar extends Calendar这不是说明了,得先有 Calendar 吗? 那么它在写 Calendar 的时候,怎么可以找到GregorianCalendar啊???
getInstance() get a Calendar using the default time zone and locale. return a Calendar.
再说,要是Calendar 的子类的话,
calendar instanceof GregorianCalendar怎么会为真?
所以并没有问题。
编程时间多了,自然会明白的。
如果
getInstance()返回的对象为java.util.GregorianCalendar是Calendar的子类。
那么:
GregorianCalendar 是由 Calendar 派生出来的,也就是说,在写作 Calendar 时,GregorianCalendar 还没有的。那 Calendar.getInstance() 怎么可以生成得到一个子类来返回呢?
/**
* Gets a calendar using the default time zone and locale.
* @return a Calendar.
*/
public static synchronized Calendar getInstance()
{
return new GregorianCalendar();
}
对头,关键是看getInstance方法的实现,如果它返回的就是一个GregorianCalendar,什么问题不都解决了吗?所以你看一个Calendar的源码,看这个方法到底是如何实现的,不就明白了吗?
return new GregorianCalendar();应该是一个子类但是这样子
public class GregorianCalendar
extends Calendar这不是说明了,得先有 Calendar 吗?
那么它在写 Calendar 的时候,怎么可以找到GregorianCalendar啊???
get a Calendar using the default time zone and locale.
return a Calendar.