Помогите пожалуйста переделать абстрактный класс под интерфейс.
Код:
import javax.xml.crypto.Data;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.Scanner;
//Создание абстрактного класса Persona
abstract class Persona {
public String surname;
public int day;
public int month;
public int year;
Persona(String surname, int day, int month, int year) {
this.surname = surname;
this.day = day;
this.month = month;
this.year = year;
}
public int get_year() {
return year;
}
public int get_day() {
return day;
}
public int get_month() {
return month;
}
public int age(int day, int month, int year) {
Calendar calendar = Calendar.getInstance();
int month_of_year = calendar.get(Calendar.MONTH);
int day_of_month = calendar.get(Calendar.DAY_OF_MONTH);
int Year = calendar.get(Calendar.YEAR);
if ((month > month_of_year) || (month == month_of_year) && (day > day_of_month)) {
return Year - year - 1;
} else {
return Year - year;
}
}
public void Show_information() {
/*
* System.out.println("Name: " + this.name);
* System.out.println("DateOfBirth: " + this.day + this.month +
* this.year); System.out.println("Age: " + age(day,month,year));
*/
}
}
// Создание проивзодного класса Abiturient
class Abiturient extends Persona {
public String faculty;
public Abiturient(String surname, int day, int month, int year, String faculty) {
super(surname, day, month, year);
this.faculty = faculty;
}
public String get_faculty() {
return faculty;
}
@Override
public void Show_information() {
System.out.println("Фамилия:" + surname);
System.out.println("Дата рождения: " + this.day + "." + this.month + "." + this.year);
System.out.println("Возраст: " + this.age(day, month, year));
System.out.println("Факультет: " + this.faculty);
}
}
// Создание проивзодного класса Student
class Student extends Persona {
public String faculty;
public int course;
Student(String surname, int day, int month, int year, String faculty, int course) {
super(surname, day, month, year);
this.faculty = faculty;
this.course = course;
}
@Override
public void Show_information() {
System.out.println("Фамилия:" + this.surname);
System.out.println("Дата рождения: " + this.day + "." + this.month + "." + this.year);
System.out.println("Возраст: " + this.age(day, month, year));
System.out.println("Факультет: " + this.faculty);
System.out.println("Курс: " + this.course);
}
}
// Создание проивзодного класса Proffessor
class Lecturer extends Persona {
public String faculty;
public String position;
public int work_experience;
Lecturer(String surname, int day, int month, int year, String faculty, String position, int work_experience) {
super(surname, day, month, year);
this.faculty = faculty;
this.position = position;
this.work_experience = work_experience;
}
@Override
public void Show_information() {
System.out.println("Фамилия:" + this.surname);
System.out.println("Дата рождения: " + this.day + "." + this.month + "." + this.year);
System.out.println("Возраст: " + this.age(day, month, year));
System.out.println("Факультет: " + this.faculty);
System.out.println("Должность: " + this.position);
System.out.println("Опыт работы: " + this.work_experience);
}
}
public class Pe {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n, a, k, i, d, m, y;
String s;
System.out.println("Введите количество экземпляров");
n = in.nextInt();
Persona[] p = new Persona[n];
System.out.println("1-Абитуриент, 2-Студент, 3-Преподователь");
for (i = 0; i < n; i++) {
System.out.println("Введите номер типа персоны");
a = in.nextInt();
switch (a) {
case 1: {
System.out.println("Введите фамилию абитуриента");
s = in.next();
String surname = s;
System.out.println("Введите день рождения абитуриента:");
k = in.nextInt();
int day = k;
System.out.println("Введите месяц рождения абитуриента:");
k = in.nextInt();
int month = k;
System.out.println("Введите год рождения абитуриента:");
k = in.nextInt();
int year = k;
System.out.println("Введите факультет абитуриента");
s = in.next();
String faculty = s;
p[i] = new Abiturient(surname, day, month, year, faculty);
break;
}
case 2: {
System.out.println("Введите фамилию студента");
s = in.next();
String surname = s;
System.out.println("Введите день рождения студента:");
k = in.nextInt();
int day = k;
System.out.println("Введите месяц рождения студента:");
k = in.nextInt();
int month = k;
System.out.println("Введите год рождения студента:");
k = in.nextInt();
int year = k;
System.out.println("Введите факультет студента");
s = in.next();
String faculty = s;
System.out.println("Введите курс студента:");
k = in.nextInt();
int course = k;
p[i] = new Student(surname, day, month, year, faculty, course);
break;
}
case 3: {
System.out.println("Введите фамилию преподователя");
s = in.next();
String surname = s;
System.out.println("Введите день рождения преподователя:");
k = in.nextInt();
int day = k;
System.out.println("Введите месяц рождения преподователя:");
k = in.nextInt();
int month = k;
System.out.println("Введите год рождения преподователя:");
k = in.nextInt();
int year = k;
System.out.println("Введите факультет, на котором работает преподователь");
s = in.next();
String faculty = s;
System.out.println("Введите должность преподователя");
s = in.next();
String position = s;
System.out.println("Введите стаж работы преподователя (лет):");
k = in.nextInt();
int work_experience = k;
p[i] = new Lecturer(surname, day, month, year, faculty, position, work_experience);
break;
}
default: {
System.out.println("----------------------------------ERROR-----------------------------------");
break;
}
}
}
System.out.println("---------------------------------:");
System.out.println("Информация о персонах:");
System.out.println("---------------------------------:");
for (i = 0; i < n; i++) {
p[i].Show_information();
System.out.println("_____________________________");
}
int d1, d2;
System.out.println("Введите минимальный возраст: ");
d1 = in.nextInt();
System.out.println("Введите максимальный возраст: ");
d2 = in.nextInt();
System.out.println("-------------------------------------------------------:");
System.out.println("Персоны, возраст которых попадает под заданный диапазон ");
System.out.println("--------------------------------------------------------");
for (i = 0; i < n; i++) {
y = p[i].age(p[i].get_day(), p[i].get_month(), p[i].get_year());
if ((y >= d1) && (y <= d2))
p[i].Show_information();
}
}
}