java - toString() 覆盖如何工作
问题描述
我刚刚了解了toString()
对象类中的方法以及如何在其他类中覆盖它。
class Box {
public String toString(){
return "class Box";
}
}
class B {
public static void main(String args[]){
Box b1=new Box();
System.out.println(b1); //case 1
Box b2=b1; //case 2
}
}
所以我的问题是盒子对象如何知道toString()
在案例 1 中返回类 Box 中的字符串并b1
在案例 2 中返回对象的地址?
解决方案
System.out.println
您调用的方法是(Object)
重载,而不是(String)
. PrintStream.println(Object)
调用toString()
它的论点(迂腐:直接或间接,除非论点是null
)。
推荐阅读
- javascript - 反应中具有 MM/DD/YYYY 格式的日期选择器
- security - 前缘 CFI 与后缘 CFI 之间的区别
- swagger-ui - 如何通过 vuejs 中的获取请求传递凭据?
- python - 检测对象的轮廓并处理轮廓内的值
- python - 不能在 search_all_resources (GCP python-asset) 中使用 page_token
- java - JsonPath:按字段查找数组中的元素
- if-statement - 如果块使用具有多个返回值的多个函数,我可以在 Go/Golang 的开头初始化多个变量吗?
- android - 如何在右上角添加一个红色圆圈
- c# - Azure Cosmos DB:“ToString”不是可识别的内置函数名称
- d3.js - 使用 dc.js 在数据表中进行虚拟滚动