匿名內部類抽象實現列舉
阿新 • • 發佈:2018-12-26
/* 星期天: Sun.=Sunday 星期一: Mon.=Monday 星期二: Tues.=Tuesday 星期三: Wed.=Wednesday 星期四: Thur.=Thursday 星期五: Fri.=Friday 星期六: Sat.=Saturday */ public abstract class WeekDayAbstract { // 建構函式私有化 不可以在new例項物件 private WeekDayAbstract() {} // 採用匿名內部類的實現方式 public static final WeekDayAbstract SUNDAY = new WeekDayAbstract() { public WeekDayAbstract NextDay() { return MONDAY; } }; public static final WeekDayAbstract MONDAY = new WeekDayAbstract() { public WeekDayAbstract NextDay() { return TUESDAY; } }; public static final WeekDayAbstract TUESDAY = new WeekDayAbstract() { public WeekDayAbstract NextDay() { return WEDDAY; } }; public static final WeekDayAbstract WEDDAY = new WeekDayAbstract() { public WeekDayAbstract NextDay() { return THURDAY; } }; public static final WeekDayAbstract THURDAY = new WeekDayAbstract() { public WeekDayAbstract NextDay() { return FRIDAY; } }; public static final WeekDayAbstract FRIDAY = new WeekDayAbstract() { public WeekDayAbstract NextDay() { return SATDAY; } }; public static final WeekDayAbstract SATDAY = new WeekDayAbstract() { public WeekDayAbstract NextDay() { return SUNDAY; } }; // 定義NextDay()方法 public abstract WeekDayAbstract NextDay(); public String toString() { // 重寫ToString方法 return this == MONDAY ? "星期一" : this == TUESDAY ? "星期二" : this == WEDDAY ? "星期三" : this == THURDAY ? "星期四" : this == FRIDAY ? "星期五" : this == SATDAY ? "星期六" : "星期日"; } }