public class StudentTest
{
String name;
int age;
public boolean equals(Object obj)
{
StudentTest st = null;
if (obj instanceof StudentTest)
st = (StudentTest)obj;
else
return false;
if(st.name == this.name && st.age == this.age)
return true;
else
return false;
}
public static void main(String [] args)
{
StudentTest p = new StudentTest();
StudentTest q = new StudentTest();
p.name = "王珊珊";
p.age = 13;
q.name = "王珊珊";
q.age = 13;
if (p.equals(q))
{
System.out.println("P与q相等!");
}
else
{
System.out.println("P与q不相等!");
}
}
}
解决:
boolean equals(Object obj)
改成:
public boolean equals(Object obj)
不加修饰符,默认的访问权限是包级权限,比public(公有)权限低
根类Object里的equals方法是public(公有)权限
不允许用低的访问权限去覆盖高的权限
所以出这个问题
分享到:
相关推荐
本文讲述了什么时候重写equals方法和如何重写equals方法。
重写toString和equals方法的意义以及方法
equals方法重写作业,Students类,有三个属性id ,name ,grade。还有一个测试类用于测试创建了三个对象前两各对象的数据完全一样,第三个对象的数据不同。使用equals方法比较。并输出结果。
重写equals和hashcode方法,学习和进步
今天小编就为大家分享一篇关于关于Object中equals方法和hashCode方法判断的分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
C# Equals 和 GetHashCode 方法重写,
Java重写equals同时需要重写hashCode的代码说明,以及如何重写hashCode方法,此代码演示按照effective java书籍说明的重写思路。代码中演示了使用集合存储对象,并且对象作为key,需重写equals和hashCode.
equals(Object) 与 == 的区别
通过该案例代码,你可以学习如何在自己的类中正确重写equals()、hashCode()、toString()等方法,提高代码质量和可读性。 经验丰富的Java开发者:即使你已经有一定的Java开发经验,仍然值得深入了解Object类的使用。...
equals()和hashcode()这两个方法都是从object类中继承过来的。当String 、Math、还有Integer、Double。。。。等这些封装类在使用equals()方法时,已经覆盖了object类的equals()方法.
关于重写equals,hashcode以及compareTo方法!
为什么重写equals方法,还必须要重写hashcode方法
主要介绍了重写hashCode()和equals()方法详细介绍,涉及重写equals()方法,重写hashCode()方法,重写equals()而不重写hashCode()的风险等相关内容的介绍,具有一定借鉴价值,需要的朋友可以参考下
Object类中的equals 方法,两个对象为同一个时返回true,如果不是同一个返回false。 通常,equals方法用于比较两个对象的内容是否一样,这时就需要类去覆盖Object的equals()方法,在equal()方法内自定义相等的规则。...
首先我们先来看下String类的源码:可以发现String是重写了Object类的equals方法的,并且也重写了hashcode方法
方法重写equals和多态
重载equals方法示例重载equals方法示例重载equals方法示例重载equals方法示例重载equals方法示例
Java中的==与equals()实例方法Java中测试两个变量是否相等的方法有两个,一个是用==运算符,另一个就是object类提供的equals()方法。2
主要介绍了重写Java中的equals方法介绍,具有一定参考价值,需要的朋友可以了解下。