Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编译器不识别I';我们已经从它实现的接口实现了compareTo()方法_Java_Interface_Abstract Class_Comparable - Fatal编程技术网

Java 编译器不识别I';我们已经从它实现的接口实现了compareTo()方法

Java 编译器不识别I';我们已经从它实现的接口实现了compareTo()方法,java,interface,abstract-class,comparable,Java,Interface,Abstract Class,Comparable,我正在由抽象类AbstractAffiliate实现一个接口“Comparable”,它由抽象类AbstractFaculty扩展,由常规类助手扩展 在助手类中实现compareTo方法时(该方法已在上述所有类/接口中声明),编译器会给出此错误 java:1:错误:助手不是抽象的,并且在抽象中不重写抽象方法compareTo() 官能 公共课助教{ ^ 1错误 我已经尝试将其作为泛化器添加到工具中 抽象附属公司 助手 公共课堂助理{ 私人国际年Suntiltenure; 公共助理(){ 超级()

我正在由抽象类AbstractAffiliate实现一个接口“Comparable”,它由抽象类AbstractFaculty扩展,由常规类助手扩展

在助手类中实现compareTo方法时(该方法已在上述所有类/接口中声明),编译器会给出此错误

java:1:错误:助手不是抽象的,并且在抽象中不重写抽象方法compareTo() 官能 公共课助教{ ^ 1错误

我已经尝试将其作为泛化器添加到工具中

抽象附属公司 助手
公共课堂助理{
私人国际年Suntiltenure;
公共助理(){
超级();
年份suntilenure=0;
}
公共助理(字串名称、字串年龄、字串地址、字串电话号码、字串年份、字串管理员、字串系主任、字串系主任、字串年鉴、字串年鉴、字串年鉴){
super(姓名、年龄、地址、电话号码、年份他们的姓名、学院ID、系、年度日历、论文编号);
this.yearsUntilTenure=yearsUntilTenure;
}
公共字符串打印(){
返回“是”;
}
公共国际比较(抽象附属公司){
if(this.year They Cametochapmanaffiliate.year Theycametochapman){
返回-1;
}
否则{
返回0;
}
}
}
```[在此处输入图像描述][1]
[1]: https://i.stack.imgur.com/Xdz2F.png

您尚未实现抽象方法。抽象方法
.compareTo()
方法不接受任何参数。相比之下,您在
助手
类中实现的版本将
AbstractAffiliate
作为参数。由于它们有不同的参数,因此它们的方法完全不同


乍一看,采用参数的版本似乎就是您想要的版本,这应该由您的基类实现
Comparable
,所以只需删除抽象
compareTo()
方法完整,您应该很好。

这是因为您已声明要实现
Compariable

Compariable#Comparieto的方法签名如下:

public int compareTo(T o);
但在助手及其父类中,您添加了一个抽象方法

public abstract int compareTo();

这与
Comparable#compareTo
中的方法不同。只需从其父类中删除
public abstract int compareTo();
方法即可解决问题,无需反复声明。

public abstract int compareTo()如果没有参数,你会把它和什么比较?也许我遗漏了什么,但是你在抽象类中声明了
public abstract int compareTo();
,但是你实现了
public int compareTo(AbstractAffiliate){…
所以你仍然需要实现
compareTo();
(或将其从抽象类中删除)。但是,这个抽象compareTo方法是在Comparable接口中定义的,因此不需要再次声明。@AndyTurner很好。我没有将代码滚动到足够远的地方来注意到这一点。愚蠢的笔记本电脑小屏幕。借口:我在手机上:)
public class Assistant extends AbstractFaculty{

private int yearsUntilTenure;

public Assistant(){
  super();
  yearsUntilTenure = 0;
}

public Assistant(String name, int age, String address, int phoneNumber, int yearTheyCameToChapman, int facultyId, String department, int yearlySalary, int numberOfPapers, int yearsUntilTenure){
  super(name, age, address, phoneNumber, yearTheyCameToChapman, facultyId, department, yearlySalary, numberOfPapers);
  this.yearsUntilTenure = yearsUntilTenure;
}

public String print(){
  return "yup";
}


public int compareTo(AbstractAffiliate affiliate){
  if (this.yearTheyCameToChapman < affiliate.yearTheyCameToChapman){
    return 1;
  }
  if (this.yearTheyCameToChapman > affiliate.yearTheyCameToChapman){
    return -1;
  }
  else{
    return 0;
  }
}



}
```[enter image description here][1]


  [1]: https://i.stack.imgur.com/Xdz2F.png
int compareTo(AbstractAffiliate o)
public int compareTo(T o);
public abstract int compareTo();