La clase de enumeración que implementa la interfaz [bien]

La clase de enumeración que implementa la interfaz [bien]

I. Introducción

clase de enumeración y de clase implementa una interfaz común, le gusta?

En segundo lugar, clase de enumeración que implementa la interfaz

La clase de enumeración que implementa la interfaz con la clase general que implementa la interfaz es la misma, se requiere que los métodos de interfaz abstracta para poner en práctica.

Pero! !

Con una clase de enumeración método abstracto que implementa la interfaz, los métodos abstractos diferentes comportamientos en diferente clase de enumeración objetivo. ¿Cómo lograr eso?

sencillo

método, siempre y cuando cada clase de objeto enumeración se reemplaza puede hacer diferentes objetos para lograr un comportamiento diferente del método abstracto.

En tercer lugar, los instrumentos de la clase las instancias de interfaz enumerados

  • Definir una interfaz
/**
 * 定义一个接口
 */
interface Info {
    void describe();
}
  • Crea una clase de enumeración que implementa esta interfaz
/**
 *  枚举类实现接口
 */
public enum EnumImplement implements Info{  }
  • métodos de interfaz de reescritura
/**
 *  枚举类实现接口重写抽象方法
 */
public enum EnumImplement implements Info{

    /**
     *  需求:实现接口,在不同的对象实现抽象方法不同的行为。
     *  实现方法:将接口的抽象方法在每个对象中重写实现不同的行为
     */
    SPRING("春天"){
        @Override
        public void describe() {
            System.out.println("春江水阿暖鸭先知");
        }
    },
    SUMMER("夏天"){
        @Override
        public void describe() {
            System.out.println("我爱山中夏,空冥花雨下。");
        }
    },
    AUTUMN("秋天"){
        @Override
        public void describe() {
            System.out.println("停车坐爱枫林晚,霜叶红于二月花。");
        }
    },
    WINTER("冬天"){
        @Override
        public void describe() {
            System.out.println("北国风光,千里冰封,万里雪飘。");
        }
    };
  •  Lograr una instancia completa clase de enumeración de una interfaz

/**
 * 定义接口
 */
interface Info {
    void describe();
}

/**
 *  枚举类实现接口的抽象方法
 */
public enum EnumImplement implements Info{

    /**
     *  需求:接口的抽象方法,在不同的对象实现不同的行为。
     *  实现方法:将接口的抽象方法在每个对象中重写实现不同的行为
     */
    SPRING("春天"){
        @Override
        public void describe() {
            System.out.println("春江水阿暖鸭先知");
        }
    },
    SUMMER("夏天"){
        @Override
        public void describe() {
            System.out.println("我爱山中夏,空冥花雨下。");
        }
    },
    AUTUMN("秋天"){
        @Override
        public void describe() {
            System.out.println("停车坐爱枫林晚,霜叶红于二月花。");
        }
    },
    WINTER("冬天"){
        @Override
        public void describe() {
            System.out.println("北国风光,千里冰封,万里雪飘。");
        }
    };

    //申明 EnumTest 对象的属性
    final String name;

    //提供有参构造器
    EnumImplement(String name) {
        this.name = name;
    }

    // 获取类对象属性
    public String getName() {
        return name;
    }
}
  •  Definir la clase de prueba para obtener clases enumeradas de los objetos y propiedades de los objetos
public class App {
    public static void main(String[] args) {

        //获取 EnumImplement 所有对象
        EnumImplement[] values = EnumImplement.values();
        for (EnumImplement v : values) {
            //获取对象属性
            System.out.println(v.getName());
            v.describe();
        }
    }
}
  • Obtiene una enumeración de la clase de objeto y los resultados de propiedad
春天
春江水阿暖鸭先知
夏天
我爱山中夏,空冥花雨下。
秋天
停车坐爱枫林晚,霜叶红于二月花。
冬天
北国风光,千里冰封,万里雪飘。

 

Publicados 316 artículos originales · ganado elogios 117 · vistas 420 000 +

Supongo que te gusta

Origin blog.csdn.net/m0_38039437/article/details/104898390
Recomendado
Clasificación