java - 这可能是一个愚蠢的问题,但希望得到澄清。我们可以说“超级”作为一个对象而不是java中的关键字吗?
问题描述
我知道 super 是一个特殊的保留关键字,但从我们使用它的方式来看,它应该被称为对象。有人可以澄清我的想法是对还是错。如果您能对此提供更详细的说明会更好。
解决方案
那是不正确的。super是java中的一个关键字,用来引用一个类的实例的超类。对象是类的一个实例。
除非存在类的实例,否则不能使用“超级”一词,因此不能将其视为等同于对象。
想想一个假设的类Human
。你可以问我“你的超类是什么”,我会说“它是Creature
”。但是你不能通过Human
询问“你的超类是什么”来“创造”一个新的。
也许你的困惑来自构造函数中“super”这个词的使用。当我们进行super();
调用时,我们实际上是在执行超类的构造函数。如您所知,构造函数是非常特殊的方法,它们的调用方式与其他方法不同。如果我要引用超类的吸气剂,我会这样做super.getWhatever();
。但是,我们不能super.something()
调用构造函数,所以我们只需要super();
. 关于在构造类的实例时调用超类的构造函数,那是因为在将我定义为“生物”之前,您不能称我为“人类”。所以,你首先在我身上创造了生物特征,然后你让我成为人类。
我希望这是有道理的 :)。
推荐阅读
- r - 基于缩放级别的闪亮传单显示标签
- push-notification - 处理通知数据而不点击 ionic 3 中的通知(一个信号推送通知)
- windows - notepad++显示奇怪符号时如何识别使用的是什么编码语言?
- android - 如何在 PowerShell 中创建分离的后台进程。需要在 AzureDevOps 管道任务中创建它
- mapbox - 如何将我的地图字体更改为 Noto Kufi 阿拉伯语?
- python - 我如何获得opencv中所有对象的所有像素?
- python - 无法将 spyder 更新到 4.0.0b2
- c# - 从 .txt 文件中删除所有行,以特定单词开头的行除外
- aws-lambda - 我可以登录,但页面刷新会让我退出
- android - 默认 sharedpreferences 不会在活动之间共享