亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Calendar是一個抽象類,為什么還能通過getInstance()獲得實例化的對象

抽象類不是不可以實例化的么?

正在回答

3 回答

首先,抽象類可以有具體的實現方法。其次,看下源碼:

if ("th".equals(aLocale.getLanguage())
? ? ? ?&& ("TH".equals(aLocale.getCountry()))) { ? ? ? ?return new sun.util.BuddhistCalendar(zone, aLocale);
? ?} else if ("JP".equals(aLocale.getVariant())
? ? ? ? ? && "JP".equals(aLocale.getCountry())
? ? ? ? ? && "ja".equals(aLocale.getLanguage())) { ? ? ? ?return new JapaneseImperialCalendar(zone, aLocale);
? ?} ? ? ? ?

? ?// else create the default calendar ? ? ? ?return new GregorianCalendar(zone, aLocale);

該方法內部最終返回的是具體的實現類,也就是子類,而不是你所理解的Calendar本身實例化的類。

2016年10月09日回答

?

3 評論

?

編輯




0 回復 有任何疑惑可以回復我~

靜態抽象類

0 回復 有任何疑惑可以回復我~

getInstance()方法中返回的是createCalendar()方法,在這個createCalendar()方法中通過多態new了Calendar的子類,創建了對象。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

Calendar是一個抽象類,為什么還能通過getInstance()獲得實例化的對象

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號