黑马程序员技术交流社区

标题: 关于打印类类型变量,是否都覆盖toString()方法, [打印本页]

作者: Alan    时间: 2013-4-16 17:07
标题: 关于打印类类型变量,是否都覆盖toString()方法,
本帖最后由 Alan 于 2013-4-17 10:38 编辑

//关于打印类类型变量,是否都覆盖toString()方法,
//疑惑 : File fl = new File("d:"); System.out.println(fl); fl不是存的是File的对象引用
//为何System.out.println(fl)能直接打印出路径,按理说是打印结果为 File@。。。。。这样才对??
作者: 沈浩    时间: 2013-4-16 17:30
你说的结果是File@。。。。。这样子     这是Object中toString()方法打印的结果    因为File覆写了Object中toString()方法
File中toString()方法 是 返回此抽象路径名的路径名字符串。
所以结果会是你看到的那样
作者: 先小涛    时间: 2013-4-17 00:45
Object中的toString方法如下
  1. //Object中的toString方法,返回的是:类名+@+hashCode值的十六进制表示,如:Person@3c45f4
  2. public String toString() {
  3.         return getClass().getName() + "@" + Integer.toHexString(hashCode());
  4. }
复制代码
而File则覆写了Object中的toString方法,返回的是路径名字符串。代码如下:
public String toString() {
        return getPath();//返回路径名字符串
}
子类覆写父类方法后,就调用子类的方法。
作者: Alan    时间: 2013-4-17 10:37
谢谢。             明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2