JAVA类中含抽象方法就一定不能实例化?!一定不能是吧

发布网友 发布时间:2022-04-20 04:36

我来回答

5个回答

热心网友 时间:2023-07-21 14:06

很简单,抽象类不象具体类那样描述一类具体事物,它是提取多种具有相似性的具体事物的共同特征而产生的,比如,helicoptor,jet,fighter父类plane,有start(),takeOff(),speedUp(),changeDirection()等方法,这是共性,但现实中有一个具体的plane吗?没有,它是抽象出来的,根本不存在。所以实例化一个plane是没有意义的,因此面向对象程序设计机制禁止对象实例化

热心网友 时间:2023-07-21 14:06

java抽象类不能实例化。
java抽象类:使用了关键词abstract声明的类叫作“抽象类”。
如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。
抽象方法,属于一种不完整的方法,只含有一个声明,没有方法主体。

热心网友 时间:2023-07-21 14:07

TimeZone.getDefault();是条用TimeZone里边的getDefault()方法啊,这个方法里边一定是返回了一个TimeZone的子类,所谓的不能实例化是指不能写成:
TimeZone tz =new TimeZone();

热心网友 时间:2023-07-21 14:07

getDefault()可以是一个static函数,返回的可以是一个匿名内隐类啊。

热心网友 时间:2023-07-21 14:08

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类的对象

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com