java se-Java>Object>toString()

问题描述

Java>Object>toString()

List list = new ArrayList();
list.add(0, "hello");
list.add(1, "world");
list.add(2, "javase");
Object object = list.get(2);
System.out.println(object); // android
// 结果为什么不是地址值?


解决方案

"javase"是一个String对象,String对象重写了toString()函数,所以执行的不是Object.toString,而是String.toString。
java的多态思想决定了,即使你用一个Object引用指向这个String变量,执行toString函数,调用的仍然是String.toString。

解决方案二:

java语言中的多态实现。String继承了Object;String同时重写了Object的toString()方法;父类对象object指向了子类String。同时满足了这三个条件。所以运行的时候,它会调用String的toString()方法。

时间: 2024-11-03 21:42:07

java se-Java>Object>toString()的相关文章

java ME、java SE和java EE的区别

作者:啃刀手 链接:https://www.zhihu.com/question/31455874/answer/63915653 来源:知乎 著作权归作者所有,转载请联系作者获得授权. Java SE(Java Platform,Standard Edition),应该先说这个,因为这个是标准版本. Java EE (Java Platform,Enterprise Edition),java 的企业版本 Java ME(Java Platform,Micro Edition),java的微型

Java SE 6之GUI:让界面更加绚丽(下)

本文为原创,如需转载,请注明作者和出处,谢谢! Java SE 6之GUI:让界面更加绚丽( 上) 在上一篇中我介绍了Java SE 6在GUI上的部分改进.在这篇 文章中我接着介绍另外几种新的GUI功能.这些功能是: 1.  带有排序和过滤功能的JTable. 2.  增强的JTabbedPane组件 3.  增强的打印功能 4.  增强的拖放功能 一.带有排序和过滤功能的JTable.     在Java SE 6中除了 java.awt被更新外,javax.swing同时也有了很大的改进.

用Java SE 6.0实现高质量桌面集成开发

提要:本文将以具体的实例向你展示Java SE 6在桌面开发中所提供的一系列优秀特征. 一. 引言 随着Java SE 6 Beta的发行,Java开发者再也不需要自己去实现Java本机接口(JNI)便可以在其应用程序中加入桌面产品所具有的特征.这些桌面集成特征现在已成为内核的一个组成部分. 最新的Java标准版本6.0(代码名为Mustang)将在功能上进行一系列的改进--开发者们能够方便地用Java处理安全,JMX,操作系统文件,国际化和桌面开发等一系列问题.Sun在开发这个版本的过程中表现

Java SE 6在Solaris的可观察性特征分析

Java平台标准版(Java SE)6,代码名为"Mustang",是最新的Java SE发行版本(正在开发中).Java SE 6源码和二进制代码都可以在www.Java.net上下载.Java SE 6平台要到2006年秋天才能正式发布.不过,现在你可以下载试用Java SE 6 Beta版. Java SE 6平台中提供了多种可观察性(observability)工具,这其中的许多工具都可在系统中运行,而这些工具中的只有极少数被用于挂起进程或核心复制处理.因此,在本文中,我们将分

Java SE 6中的AWT模态增强功能

一. 引言 模态一直是我最喜欢的话题之一,至少因为一直存在大量的感兴趣的客户的有关于这方面内容的回馈信息.作为一个Java SE测试工程师,这正是驱动我工作的动力-它使我一直处于忙碌之中,而且还为我的工作带来快乐.另一方面,这也说明了模态是客户端最广为使用的特征之一,不管是使用Swing还是使用AWT进行开发. 在Java SE 6(代码名为Mustang)中,我的工作变得更有意思--在模态方面进行大量的改进.这些改进将为应用程序开发者提供更大的灵活性--在设计可能用到模态对话框行为的程序的过程

Java SE 6 新特性: HTTP 增强

2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Mustang 在性能方面有了不错的提升.与 Tiger 在 API 库方面的大幅度加强相比,虽然 Mustang 在 API 库方面的新特性显得不太多,但是也提供了许多实用和方便的功能:在脚本,WebService,XML,编译器 API,数据库,JMX,网络和 Instrumentation 方面都有不错

Java SE 8:标准库增强

Lambda表达式是Java SE 8的核心功能,大部分的改进都围绕lambda表达式展开.(Jigsaw项目已经被推迟到Java SE 9.)关于lambda表达式的内容,已经在上一篇文章中进行了说明.这篇文章主要介绍Java SE 8中包含的其他Java标准库的增强. 并行排序 随着多核CPU的流行,Java平台的标准库实现也尽可能利用底层硬件平台的能力来提高性能.Java SE 7中引入了Fork/Join框架作为一个轻量级的并行任务执行引擎.Java SE 8把Fork/Join框架用到

Java SE 8: Lambda表达式

Java SE 8在6月13的版本中已经完全了全部的功能.在这些新的功能中,lambda表达式是推动该版本发布 的最重要新特性.因为Java第一次尝试引入函数式编程的相关内容.社区对于lambda表达式也期待已久. Lambda表达式的相关内容在JSR 335中定义,本文的内容基于最新的规范和JDK 8 Build b94. 开发环境使用 的是Eclipse. Lambda表达式 要理解lambda表达式,首先要了解的是函数式接口(functional interface).简单来说,函数式接口

Java SE 6 update 10 Beta简介

不要被这个普普通通的名字所迷惑,即将发布的 Java SE6 update10(当前发布的是试用版)与之前 的更新版本存在很大的差异.与之前发布的 java 编程语言更新相比,Java SE 6u10 加入了更多的特性 和功能,从而推动包络(Envelope)的发展. 严格地说,"Java更新发行版"只是对版本号的第四位(比如,对版本 1.6.0_10 的 10 )进行了改 动.与大多数发行版不同,更新发行版本不允许添加.删除或者更改任何公共 API 函数,这样也将更新 发行局限于对

让界面更加绚丽 Java SE 6.0 GUI体验

Java是一种非常强大的编程语言,但Java的GUI能力一直是它的软肋.虽然Java提供2种图形解决方案,AWT和Swing.但这2种图形库的功能十分有限,使用它们并不能带来更多的用户体验.而且AWT和Swing的更新速度很慢.一直到Java SE 5也没什么明显的变化.幸好Java SE 6终于为它们增加了更强大的功能.有了这些功能,使用AWT和Swing设计的用户界面可以更贴近用户.为了使读者能够更早地体验Java SE 6 GUI的美丽,本文将就Java SE 6 GUI提供的主要功能进行