package wr3; public class Person { private String name; private String id; private String bday; private String address; public String getName(){ return name; } public String getID(){ return id; } public String getBday(){ return bday; } public String getAdd(){ return address; } public void equals(){ super.equals(id); } @Override public String toString(){ return(name + bday + id + address); } }
package wr3; public class Test { public static void main(String[] args){ String name = "Claude Rhay Torre"; String name2 = "Bea Señerpida"; String id = "10302993"; String id2 = "11102825"; String bday = "06/201993"; String bday2 = "11/17/1994"; String address = "BF Better Living Basak LLC"; String address2 = "F Martyr St Poblacion LLC"; boolean eq; System.out.println(name.toString()); System.out.println(id.toString()); System.out.println(bday.toString()); System.out.println(address.toString()); System.out.println(); System.out.println(name2.toString()); System.out.println(id2.toString()); System.out.println(bday2.toString()); System.out.println(address2.toString()); eq = id.equals(id2); System.out.println("\nDo they have the same ID number? " + eq ); } }
所以我有这个代码。 我也有这个问题。
我的问题是,这两个课程是否相关? 我的意思是,我的测试类中调用的“toString”和“equal”方法是我 Person's class 中的方法吗?或者是Object类上的“toString”和“equal”方法?
如何覆盖Object类中的 equals 和 toString 类?
答案 0 :(得分:0)
从其他类继承方法时(例如public String toString()
中的Object
),您只需在类中定义自己的public String toString()
即可覆盖它。您实际上已在代码中执行了此操作,并且已成功覆盖toString()
的所有实例{。}}。
您没有看到预期结果的原因是您调用的Person
和toString()
方法来自equals()
课程,而不是String
课程}类。这是因为你在Person
个对象上调用它们,而不是String
个对象 - 并且这两个类在层次上并不相关(除了它们共同的Person
祖先)。
您的Object
可能是这样的,而不是:
Test