当前位置: 代码迷 >> J2SE >> 请问一个java中Object类中equals()方法有关问题
  详细解决方案

请问一个java中Object类中equals()方法有关问题

热度:104   发布时间:2016-04-23 19:42:54.0
请教一个java中Object类中equals()方法问题
class Demo
{
  private int num;
  Demo(int num)
  {
  this.num=num;
  }
  public boolean equals(Object obj)          //Object obj=new Demo();
  {
  if(!(obj instanceof Demo))              // 条件操作数类型 Object 和 Demo 不兼容   
              return false;
   Demo d=(Demo)obj;                 //不能从Object强制类型转换为Demo
   return this.num==d.num;
   
  }
}

public class Object {

public static void main(String[] args) {

         Demo s1=new Demo(4);
         Demo s2=new Demo(4);
              
         System.out.println(s1.equals(s2));
}

}

------解决思路----------------------
自己的类不要定义为Object,这样会和java.lang.Object冲突的
------解决思路----------------------
你好,因为你的类名的命名规范问题,将Object改为其他名字。Object类为java自带的类,如改为如下:
public class Hello {
public static void main(String[] args) {

        Demo s1=new Demo(4);
        Demo s2=new Demo(4);
             
        System.out.println(s1.equals(s2));
}
}

class Demo
{
  private int num;
  Demo(int num)
  {
  this.num=num;
  }
  public boolean equals(Object obj)          
  {
  if(!(obj instanceof Demo))                 
              return false;
   Demo d=(Demo)obj;             
   return this.num==d.num;
   
  }
}
  相关解决方案