请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Java的toString()重写问题

Student类:

 public String toString() {

       return "Student: " + this.name + " " + Integer.toString( this.score );

   }

选择排序类:

 student[] d = new student[4];

        d[0] = new student("D",90);

        d[1] = new student("C",100);

        d[2] = new student("B",95);

        d[3] = new student("A",95);

        SelectionSort.sort(d);//该方法为选择排序算法

        for( int i = 0 ; i < d.length ; i ++ )

            System.out.println(d[i]);

我想问的是,对象数组出来的是为Object对象,在输出的时候,是自动进行toString转换吗,是所有对象数组都存在这种自动调用的现象吗,如果不进行toString转化的话,输出的不是预期的结果。(正在自学JAVA和算法的小白,谢谢大佬的指点了)

正在回答

1回答

liuyubobobo 2017-12-27 19:42:19

在Java中每一个类都是Object类的子类,Object中有一个toString的方法,用于控制在输出一个Object类的对象时,相应的输出结果。如果在自己的类中覆盖toString方法,则会在输出时,调用自己的类自定义的toString方法。这种自动调用子类特有方法的机制,称之为“多态”。


如果语言基础存在问题的话,可能学习这个课程会偏难。建议先过基础语法关,这样在学习算法的时候就不用和语法较劲了,只和逻辑较劲就可以了。关于这个课程的定位,可以参见这里:https://coding.imooc.com/learn/questiondetail/16248.html


2 回复 有任何疑惑可以回复我~
  • 提问者 Mark1900 #1
    谢谢老师,
    回复 有任何疑惑可以回复我~ 2017-12-27 19:44:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信