public class Person implements Comparable{
private final int id;
private String name;
private int age;
public Person(int id,String name,int age){
this.id = id;
this.name = name;
this.age = age;
}
public int getId(){
return id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public String toString(){
return "Id: " + id + "\tName: " + name + "\tAge: " + age;
}
@Override
public int compareTo(Object o){
Person p = (Person)o;
return this.id - p.id;
}
@Override
public boolean equals(Object o){
boolean flag = false;
if(o instanceof Person){
if(this.id == ((Person)o).id)
flag = true;
}
return false;
}
}编译的时候提示未能覆盖,求助高人帮我改写。
private final int id;
private String name;
private int age;
public Person(int id,String name,int age){
this.id = id;
this.name = name;
this.age = age;
}
public int getId(){
return id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public String toString(){
return "Id: " + id + "\tName: " + name + "\tAge: " + age;
}
@Override
public int compareTo(Object o){
Person p = (Person)o;
return this.id - p.id;
}
@Override
public boolean equals(Object o){
boolean flag = false;
if(o instanceof Person){
if(this.id == ((Person)o).id)
flag = true;
}
return false;
}
}编译的时候提示未能覆盖,求助高人帮我改写。
我在CMD 下也是错误的?天啊 谁来救救我
把 @Override 这些东东 全部 删除掉 应该 就可以了
是在1.6以后才能够识别的,IDE自动添加的
如果LZ的JDK没有更新的话可以更新下,不然就删除好了
如果没有这个@Override 东西 为什么他会显示没有覆盖父类呢?
标注哪些方法是重写的。也就是说标记了 @Override 的方法,必须在父类中存在这个方法。@Override 只能标注 Object 类或者是其他父类中的方法。由于 Comparable 是个接口,必须得实现,因此不能采用 @Override 来标注。
注释类型 Override--------------------------------------------------------------------------------@Target(value=METHOD)
@Retention(value=SOURCE)
public @interface Override表示一个方法声明打算重写超类中的另一个方法声明。如果方法利用此注释类型进行注解但没有重写超类方法,则编译器会生成一条错误消息。这是1.5JDK 的解释 ,我明明覆盖了哇,而且视频上也是运行成功的。
对于类的继承,override的解释没有差别,就在接口上,有的版本对实现的接口的方法也叫override,但是有的版本则不称为override,楼主可以换换版本试下就知道了