JAVA中实现一个接口的有关问题
JAVA中实现一个接口的问题
为什么没有实现equals接口程序也没有问题?
------解决思路----------------------
Object里面定义了equlas
------解决思路----------------------
同楼上,所有的类都是基础超类Object的。接口也不例外,超类Object中已经有equal方法了
------解决思路----------------------
用的是Object里的equals
------解决思路----------------------
Object类当中定义了equals方法,而且比较的是两个对象的内存地址:
所有的类都会继承Object,从而继承到equals方法。
下面的代码证实了这一点,而且MyComare的继承来的equals方法比较的是地址:
import java.util.Comparator;
interface MyComparator {
int compare(Object o1, Object o2);
boolean equals(Object obj);
}
public class MyCompare implements MyComparator{
@Override
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
return 0;
}
}
为什么没有实现equals接口程序也没有问题?
------解决思路----------------------
Object里面定义了equlas
------解决思路----------------------
同楼上,所有的类都是基础超类Object的。接口也不例外,超类Object中已经有equal方法了
------解决思路----------------------
用的是Object里的equals
------解决思路----------------------
Object类当中定义了equals方法,而且比较的是两个对象的内存地址:
public boolean equals(Object obj) {
return (this == obj);
}
所有的类都会继承Object,从而继承到equals方法。
下面的代码证实了这一点,而且MyComare的继承来的equals方法比较的是地址:
import java.util.Comparator;
interface MyComparator {
int compare(Object o1, Object o2);
boolean equals(Object obj);
}
public class MyCompare implements MyComparator{
@Override
public int compare(Object o1, Object o2) {
return 0;
}
public static void main(String[] args){
MyCompare mc = new MyCompare();
MyCompare md = mc;
System.out.println(mc.equals(md));
}
}