Абстрактный суперкласс и подклассы в Java - PullRequest
0 голосов
/ 02 апреля 2020

Итак, я создал класс 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;
    }
}

Однако при запуске любого из подклассов возникает ошибка. Что я должен изменить / добавить, чтобы это работало?

...