В следующем фрагменте простого кода используется интерфейс Named
, содержащий два метода, а именно name()
и order()
, который реализуется enum
с именем Days
.enum Days
не позволяет реализовать метод name()
своего реализующего интерфейса.Это вызывает ошибку во время компиляции и, хотя enum
не реализует метод name()
, он не выдает никакой ошибки.
package enumpkg;
interface Named
{
public String name();
public int order();
}
enum Days implements Named
{
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday;
public int order()
{
return ordinal()+1;
}
}
final public class Main
{
public static void main(String[] args)
{
System.out.println("Monday = "+Days.Monday.order());
System.out.println("Tuesday = "+Days.Tuesday.order());
System.out.println("Wednesday = "+Days.Wednesday.order());
System.out.println("Thursday = "+Days.Thursday.order());
System.out.println("Friday = "+Days.Friday.order());
System.out.println("Saturday = "+Days.Saturday.order());
System.out.println("Sunday = "+Days.Sunday.order());
}
}
Код работает без реализацииметод name()
в enum
.Как?
Вывод вполне очевиден, как показано ниже.
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
Sunday = 7