我的一个小java程序出了点问题,请高人指点

来源:百度知道 编辑:UC知道 时间:2024/07/07 08:33:32
源程序:
class student
{
String name;
int age;
boolean equals(Object obj)
{
student st=null;
if (obj instanceof student)

st=(student)obj;
else
return false;
if (st.name==this.name&&st.age==this.age)
return true;
else
return false;
}
public static void main(String[] args)
{
student p=new student();
student q=new student();
p.name="xiaowang";
p.age=21;
q.name="xiaoli";
q.age=21;
if (p.equals(q))
System.out.println("p=q");
else
System.out.println("p!=q");
}
}

错误提示:student.java:5: student中的 equals(java.lang.Object)无法覆盖java.lang.Object中的equals(java.lang.Object),正在常识制定更低的访问权限:为public
boolean equals(object obj)
^

请高人给与指点如何修改,什么问题?

修改如下:
public boolean equals(Object obj)

子类覆盖父类中的方法时不能使用比父类更严格的修改符,因为在父类中使用的是public,所以在子类中只能使用public

覆盖准则:访问权限不能被缩小

将boolean equals(Object obj)改为public boolean equals(Object obj) 就可以了!

boolean equals(Object obj)
前面要有public