java抽象类不能实例化?
java中抽象类不可以实例化,这个概念一直在我脑子里。那这行代码是怎么回事?TimeZonetz=TimeZone.getDefault();我查了api,TimeZon...
java中抽象类不可以实例化,这个概念一直在我脑子里。那这行代码是怎么回事?TimeZone tz =TimeZone.getDefault(); 我查了api,TimeZone是定义是:public abstract class TimeZone。而且我也查了,java api中也没有TimeZone的实现子类啊...困惑...
展开
8个回答
展开全部
java抽象类不能实例化。
java抽象类:使用了关键词abstract声明的类叫作“抽象类”。
如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。
抽象方法,属于一种不完整的方法,只含有一个声明,没有方法主体。
java抽象类:使用了关键词abstract声明的类叫作“抽象类”。
如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。
抽象方法,属于一种不完整的方法,只含有一个声明,没有方法主体。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
TimeZone.getDefault();是条用TimeZone里边的getDefault()方法啊,这个方法里边一定是返回了一个TimeZone的子类,所谓的不能实例化是指不能写成:
TimeZone tz =new TimeZone();
TimeZone tz =new TimeZone();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
getDefault()可以是一个static函数,返回的可以是一个匿名内隐类啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Java 源代码如下:
public static TimeZone getDefault() {
return (TimeZone) getDefaultRef().clone();
}
然后看getDefaultRef()方法:
static TimeZone getDefaultRef() {
TimeZone defaultZone = defaultZoneTL.get();
if (defaultZone == null) {
defaultZone = defaultTimeZone;
if (defaultZone == null) {
// Need to initialize the default time zone.
defaultZone = setDefaultZone();
assert defaultZone != null;
}
}
// Don't clone here.
return defaultZone;
}
这时defaultZoneTL.get()返回的是InheritableThreadLocal类的对象
public static TimeZone getDefault() {
return (TimeZone) getDefaultRef().clone();
}
然后看getDefaultRef()方法:
static TimeZone getDefaultRef() {
TimeZone defaultZone = defaultZoneTL.get();
if (defaultZone == null) {
defaultZone = defaultTimeZone;
if (defaultZone == null) {
// Need to initialize the default time zone.
defaultZone = setDefaultZone();
assert defaultZone != null;
}
}
// Don't clone here.
return defaultZone;
}
这时defaultZoneTL.get()返回的是InheritableThreadLocal类的对象
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询