关于toString的自动调用

摘要:
如果在类中写入toString,则相当于覆盖类中的原始toString,它将在System.out.print中自动调用。
 1 class a{
 2 
 3 }
 4 
 5 class b extends a{
 6 
 7    String rr = "zzz";
 8 
 9    public String toString(){
10 
11            return "aa";
12 
13      }
14 
15 }
16 
17 public class A6{
18 
19        public static void main(String[] args){
20 
21                     b i = new b();
22 
23                    System.out.println(i);
24 
25        }
26 
27 }

输出结果是 aa。为什么会默认调用toString方法

System.out.println(i); 改为System.out.println(i.rr);结果为zzz。为什么不会调用toString方法。

 

1、这里面System.out.println(i)调用b里面定义的toString();因为输出字符串是调用toString()方法,如果子类没有定义toString()方法则会调用父类的,如果父类没有定义则最终会调用超级父类的ObjecttoString()方法,然后rrb类定义的一个属性,其对象为String,就会调用String里面的toString()方法,所有System.out.println(i.rr);其实是调用了String里面的toString()方法

2toString()java中的一个内置方法,很多object都支持toString这个方法。

而如果你在类里编写了toString,相当于覆盖了类中原有的toString

System.out.print中会自动调用。

3、将System.out.println(i); 默认调用toString System.out.println(i.rr);的意思是输入b类的rr的属性。

4、因为类b继承了类a,而类a重写了toString()方法,system.out.printi)默认调用了i.toString(),所以输出了aai.rr则是输出i对象的属性rr的值

免责声明:文章转载自《关于toString的自动调用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring系列缓存注解@Cacheable @CacheEvit @CachePut 使用姿势介绍大脑的处理模式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# Web Service简单使用

第一步 打开VS,新建一个项目   第二步  创建一个ASP.NET 空 Web应用程序 我这里用的是VS2017 第三步 添加一个Web 服务(ASMX) 右键解决方案-->添加-->新建项 找到Web 服务(ASMX) 第四步 编写WebService的代码部分 创建完成后可以看到下面的画面 默认有个Hello Word的方法,我...

Android 中的一些特殊目录与文件

用作命令的二进制文件位于/system/bin/与/system/xbin/下 应用数据位于/data/data/, 原始安装文件位于/data/app/(Play商店中非免费应用位于/data/app-private/) 权限相关的文件位于/system/etc/permissions/, 其中权限与权限组的文件是platform.xml 系统启动时in...

C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)

官方下载地址(ODP.net)(中文):http://www.oracle.com/technetwork/cn/topics/dotnet/downloads/index.html 官方下载地址(ODP.net):http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html 首先...

查看k8s中etcd数据

1.查看ETCD集群中运行的ETCD pod [root@master1 ~]# kubectl get pod -n kube-system | grep etcd etcd-master1 1/1 Running 0 61m etcd-master2...

system()函数

曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函数风险较多,故抛弃不用,改用其他的方法。这里先不说我用了什么方法,这里必须要搞懂system()函数,因为还是有很多人用...

System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。

今天在写导入Excel表格的代码,运行时却报异常,异常信息: System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。 解决方案:下载2007 Office system 驱动程序:数据连接组件安装http://download.microsoft.com/dow...