在java中由于Object是所有类的父类,而且equals方法是public,理论上所有Person类都能够继承并使用该方法。
然而以下程序执行结果是false。
class Person // 定义了Person类,实际就是继承了Object类
{
private String name ;
private int age ;
public Person(String name , int age)
{
this.name =name ;
this.age = age;
}
}
public class TestObject
{
public static void main(String[] args)
{
Person per1 = new Person("Tyrion",24);
Person per2 = new Person("Tyrion",24);
System.out.println(per1.equals(per2));
}
}
但是将程序修改,用Object接收类,结果为true。请大家帮帮忙
class Person // 定义了Person类,实际就是继承了Object类
{
private String name ;
private int age ;
public Person(String name , int age)
{
this.name =name ;
this.age = age;
}
}
public class TestObject
{
public static void main(String[] args)
{
Person per1 = new Person("Tyrion",24);
Person per2 = new Person("Tyrion",34);
Object obj1 = per1;
Object obj2 = per2;
System.out.println(obj1.equals(per1));
}
}
看过jdk文档,并没有明确说明。请大家帮忙解答。