所以我试图创建一个使用实现接口的类的程序。这个想法是接口拥有所有可能的基础统计数据,就像所有使用大学的人一样,而班级则更具体,比如教师。用户给出他们的名字和姓氏,M号码(实质上是一个ID),以及他们是全职还是兼职。我并不试图检查它是否已经存在,或者是任何复杂的东西:只要创建该对象,然后输出一行说明它已创建。Java类实现接口错误
下面的代码:
接口:
package assignment1;
import java.util.Scanner;
public interface Person {
String firstName, lastName, mNumber;
void setName(String fName, String lName){
firstName = fName; lastName = lName; }
String getName(){
String fullName = this.firstName.concat(" " + this.lastName);
return fullName; }
void setMNumber(String mNum){
mNumber = mNum; }
String getMNumber(){
return mNumber; }
}
类:
package assignment1;
import java.util.Scanner;
public class Faculty implements Person {
void actionPerformed(java.awt.event.ActionEvent ev){ }
String Type;
public Faculty(){ }
public void defineType(String type){
this.Type = type;
}
String getType(){
return this.Type; }
void print(){
System.out.println(" A new faculty " + this.getName() +
"M-Number: " + this.getMNumber() + " Type: " +
this.Type + " has been created.");
}
public static void main(String[] args){
Faculty f1 = new Faculty();
Scanner scant = new Scanner(System.in);
String fName = scant.next();
String lName = scant.next();
f1.setName(fName, lName);
String MNum = scant.next();
f1.setMNumber(MNum);
String T = scant.next();
f1.defineType(T);
f1.print();
}
}
问题是当我尝试运行此。不管我给什么样的输入,或通过我的所有其他企图在修复它,我收到以下错误给出输入后:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The type Faculty must implement the inherited abstract method Person.setName(String, String)
at assignment1.Faculty.setName(Faculty.java:5)
at assignment1.Faculty.main(Faculty.java:28)
如果有人能告诉我什么,我做错了,解释为什么它是错误的,并告诉我如何解决它,这将不胜感激。
我想你可能想仔细看看[interfaces trail](https://docs.oracle.com/javase/tutorial/java/IandI /createinterface.html),如果您使用的是Java 8,[缺省方法](https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html) – MadProgrammer