glq2000
发贴: 1
积分: 0
|
于 2006-11-04 09:00
我写了一个关于equals方法的的例子,我的疑问是如果Student类没有重写父类Object中的equals方法而直接使用它时 ,为什么在该返回true时也返回false呢 ?谢谢 class Student { private String name; private int age; public Student(String name,int age) { this.name=name; this.age=age; } public boolean equals(Object obj)//如果不重写Object父类中的equals方法的话,则总是返回false; { Student st=null; if(obj instanceof Student) { st=(Student)obj; if(st.name==name&&st.age==age) return true; else return false; } else return false; } public static void main(String [] args) { Student st1=new Student("wangwu",20); Student st2=new Student("wangwu",20); if(st1.equals(st2))//假设上面没有重写equals方法,则总是返回false;为什么会这样呢?? System.out.println("equals"); else System.out.println("not equals"); } }
|