代码之家  ›  专栏  ›  技术社区  ›  Tord Larsen smaznet

在java中,我的toString()没有按预期工作

  •  -4
  • Tord Larsen smaznet  · 技术社区  · 6 年前

    我有这个密码,以为 toString()

    public class Person  {
        @Override
        public String toString(){
           System.out.printLn("im in Person  ");
           return "im in Person  ";
        }
    }
    
    public class Student extends Person {
        @Override
        public String toString(){
    
           System.out.printLn("im in Student");
           return "im in Student";
        }
    }
    
    
    Student s = new Student();
    
    System.out.println(s.toString());
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Stefan Razvan Florea    6 年前

    在面向对象的术语中,重写意味着重写现有方法的功能。 在运行时,JVM计算出对象类型并运行属于该特定对象的方法。

    如果需要从超类调用方法,则需要通过调用 super.toString() .

        2
  •  2
  •   Hasan Can Saral    6 年前
    public class Person  {
        @Override
        public String toString(){
           return "im in Person  ";
        }
    }
    
    public class Student extends Person {
        @Override
        public String toString(){
             return String.format("%s\n%s", super.toString(), "im in Student");
        }
    }
    

    你可以这样称呼它。