列挙のその他の応用

1614 ワード

この章のターゲットは、列挙を使用してインタフェースを実装し、列挙クラスで抽象メソッドを定義できます.
 
列挙クラスにインタフェース列挙クラスを実装させることもインタフェースを実装することもできますが、インタフェースには抽象メソッドが存在するため、列挙クラスの各オブジェクトはそれぞれこの抽象メソッドを実装する必要があります.
 
列挙クラスにインタフェースを実装する
interface Print{//   Print   
	public String getColor();//      
}
enum Color implements Print{//       
	RED{//          
		public String getColor(){
			return "  ";
		}
	},GREEN{//          
		public String getColor(){
			return "  ";
		}
	},BLUE{//          
		public String getColor(){
			return "  ";
		}
	};
}
public class InterfaceEnumDemo {
	public static void main(String[] args) {
		for(Color c:Color.values()){//foreach   
			System.out.print(c.getColor()+"、");//  
		}
	}
/*   :
 *   、  、  、
 * */
}

列挙クラスでの抽象メソッドの定義
enum Color {//   
	RED{//          
		public String getColor(){
			return "  ";
		}
	},GREEN{//          
		public String getColor(){
			return "  ";
		}
	},BLUE{//          
		public String getColor(){
			return "  ";
		}
	};
	public abstract String getColor();
}
public class AbstractMethodEnum {
	public static void main(String[] args) {
		for(Color c:Color.values()){//foreach   
			System.out.print(c.getColor()+"、");//  
		}
	}
/*   :
 *   、  、  、
 * */
}