Итак, я пытаюсь создать программу, которая использует классы, реализующие интерфейс. Идея заключается в том, что интерфейс имеет базовую статистику для всех возможных, как и все люди, которые используют университет, в то время как классы более специфичны, например, факультет. Пользователь дает свое имя и фамилию, номер 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)
Если кто-нибудь может сказать мне, что я делаю неправильно, объясните почему это неправильно, и скажите мне, как это исправить, было бы весьма полезно.
Я думаю, вам, возможно, захочется более подробно ознакомиться с [интерфейсом trail] (https://docs.oracle.com/javase/tutorial/java/IandI /createinterface.html), и если вы используете Java 8, [методы по умолчанию] (https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html) – MadProgrammer