首页 > 解决方案 > 这可能是一个愚蠢的问题,但希望得到澄清。我们可以说“超级”作为一个对象而不是java中的关键字吗?

问题描述

我知道 super 是一个特殊的保留关键字,但从我们使用它的方式来看,它应该被称为对象。有人可以澄清我的想法是对还是错。如果您能对此提供更详细的说明会更好。

标签: javasuper

解决方案


那是不正确的。super是java中的一个关键字,用来引用一个类的实例的超类。对象是类的一个实例。

除非存在类的实例,否则不能使用“超级”一词,因此不能将其视为等同于对象。

想想一个假设的类Human。你可以问我“你的超类是什么”,我会说“它是Creature”。但是你不能通过Human询问“你的超类是什么”来“创造”一个新的。

也许你的困惑来自构造函数中“super”这个词的使用。当我们进行super();调用时,我们实际上是在执行超类的构造函数。如您所知,构造函数是非常特殊的方法,它们的调用方式与其他方法不同。如果我要引用超类的吸气剂,我会这样做super.getWhatever();。但是,我们不能super.something()调用构造函数,所以我们只需要super();. 关于在构造类的实例时调用超类的构造函数,那是因为在将我定义为“生物”之前,您不能称我为“人类”。所以,你首先在我身上创造了生物特征,然后你让我成为人类。

我希望这是有道理的 :)。


推荐阅读