java - 将 toString() 方法中的 super 关键字隐式转换为 super.toString() 没有发生
问题描述
我有以下两个类,如下所示。为简单起见,仅显示了 toString 覆盖的方法。
public class Circle {
@Override
public String toString() {
return "Circle";
}
}
public class Cylinder extends Circle {
@Override
public String toString() {
// return "Cylinder"+this; // runs without explicitly calling toString() on this keyword
// return "Cylinder"+super; // throws error, asks to delete super token
return "Cylinder["+super.toString(); // runs without error after adding .toString() with super keyword
}
}
我遇到的问题是我对超级关键字的理解。super 关键字的 toString() 应该像 this 关键字一样被隐式调用。事实上,大多数教程和书籍都将 super 关键字称为对超类的一种对象引用,因此它的行为必须与此关键字与 toString() 中的“+”连接运算符一起使用时。请帮助我理解这一点。
解决方案
推荐阅读
- sql - RESTORE 数据库现在处于紧急状态
- javascript - 如何为 graphQL 解析器查询 firestore()?
- python - 如何使用计数方法(字符串类)?在蟒蛇
- c# - 如何将数据列表中按钮的命令参数传递到另一个页面?
- java - 增加 JTextPane 的打印大小
- html - 导航栏中的中心链接和按钮
- python-3.x - 为大型数据集创建 HMC 的自定义梯度函数
- android - Android ViewModel 使用 Transformation.map 从 Sharedpreferences 转换数据
- machine-learning - 特征嵌入和图像特征有什么区别?
- javascript -
请解释一下它在js中的含义