Итак, я создал класс Date, который объявил абстрактным. Я также объявил метод toString в нем также абстрактным:
package experiment5;
public abstract class Date
{
// Data fields
private int day;
private int year;
private int month;
// Constructors
public Date(int newDay, int newMonth, int newYear) {
day = newDay;
month = newMonth;
year = newYear;
}
public Date() {
day = 1;
year = 2020;
month = 1;
}
// Methods
public int getDay() {
return day;
}
public int getMonth() {
return month;
}
public int getYear() {
return year;
}
public abstract String toString();
public void setDay(int daySet) {
day = daySet;
}
public void setMonth(int monthSet) {
month = monthSet;
}
public void setYear(int yearSet) {
year = yearSet;
}
}
Затем я расширил суперкласс Date двумя подклассами, USDate и IOSDate, которые должны возвращать дату в формате США (мм / дд). / гггг) и международный формат даты (CCYY-MM-DD) соответственно.
package experiment5;
import java.text.DecimalFormat;
//Class Name
public abstract class USDate extends Date {
//toString Method
public abstract String toString() {
DecimalFormat timePattern = new DecimalFormat("00/00/0000");
return "The date is " + timePattern.month + "/" + timePattern.day + "/" + timePattern.year;
}
}
package experiment5;
import java.text.DecimalFormat;
//Class Name
public abstract class ISODate extends Date {
//toString Method
public abstract String toString() {
DecimalFormat timePattern = new DecimalFormat("0000-00-00");
return "The date is " + timePattern.year + "-" + timePattern.month + "-" + timePattern.day;
}
}
Однако при запуске любого из подклассов возникает ошибка. Что я должен изменить / добавить, чтобы это работало?