如何覆盖?
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); } }
所以我有这样的代码。 而且我也有这个问题。如何覆盖?
- A. Object类
- 研究对象在java.lang包中的类。
- 了解其所有方法。
- 创建人员类的要求:
a。实施封装
b。这些字段包括:姓名,身份证(身份证号码),生日,以及 地址。
c。一个将覆盖Object类的equals()方法的方法。 如果两个人拥有相同的身份证件,则两个人相同。 d。一种将覆盖Object 类的toString()方法的方法。它显示人物 对象的ID,姓名,生日和地址。 - 创建一个测试类来创建Person对象并适当地调用equals()和toString()方法。
我的问题是,这两个类甚至关系? 我的意思是,我的“toString”和“equal”方法调用我的测试类是我的人的类?或者是Object类的方法“toString”和“equal”?
如何覆盖对象类中的等于和toString类?
当从另一个类继承一个方法时(例如public String toString()
从Object
),所有你需要做的重写它就是在你的类中定义你自己的public String toString()
。您已经在代码中实际执行了此操作,并且您已成功替代Person
的所有实例的toString()
。
的原因,你没有看到你所期望的结果是toString()
和equals()
方法你调用来自String
类,而不是从你的Person
类。这是因为你在String
对象上调用它们,而不是在Person
对象 - 而这两个类没有层次关系(除了它们共同的Object
祖先之外)。
你Test
可能是这样的,而不是:
Person p1 = new Person();
p1.name = "Claude Rhay Torre";
p1.id = "10302993";
p1.bday = "06/20/1993";
p1.address = "BF Better Living Basak LLC";
Person p2 = new Person();
p2.name2 = "Bea Señerpida";
p2.id2 = "11102825";
p2.bday2 = "11/17/1994";
p2.address2 = "F Martyr St Poblacion LLC";
System.out.println(p1.toString());
System.out.println(p2.toString());
你可以告诉我如何进行继承吗?比如,重做我的代码?:/我似乎没有得到它。我怎样才能让它们相关? –
@ClaudeRhay由于各种原因,'String'被Java的设计者标记为'final',这意味着你根本不能创建'String'的子类 –
噢好吧,我似乎现在就明白了,那么我怎么才能让它们继承我的Person类呢? –
你'Test'类不会创建'Person'对象... –
岂不执行问题的方法基本上立即回答这个问题?您可以通过复制签名来覆盖方法。 –
@DaveNewton我不明白......你能详细解释一下吗? :( –