A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Alan 于 2013-4-17 10:38 编辑

//关于打印类类型变量,是否都覆盖toString()方法,
//疑惑 : File fl = new File("d:"); System.out.println(fl); fl不是存的是File的对象引用
//为何System.out.println(fl)能直接打印出路径,按理说是打印结果为 File@。。。。。这样才对??

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

3 个回复

倒序浏览
你说的结果是File@。。。。。这样子     这是Object中toString()方法打印的结果    因为File覆写了Object中toString()方法
File中toString()方法 是 返回此抽象路径名的路径名字符串。
所以结果会是你看到的那样

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
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();//返回路径名字符串
}
子类覆写父类方法后,就调用子类的方法。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
谢谢。             明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马