枚举和泛型的区别

   刚刚学Java,一直把枚举和泛型的概念搞混;

先说一下枚举吧,枚举用关键字enum进行定义,比如

public enum Sex{boy,girl}

这样就定义一个sex 的枚举,看如何使用;

public class Students {
    private Sex sex;//定义了sex的类型
    private int age;
public void Set getSet(){
reurn sex;

}
public void setSex(Sex sex){
  this.sex=sex;
} }

//写一个测试类
public class Test(){
  public static void main(){String[] args}{
  Students student=new Student();
  liwei.setSex(Sex.boy);///为性别赋值,性别值必须为枚举常量,若赋其他值则报错。
}

再说说泛型,泛型的出现时为了解决多态中向上转型和向下转型出现的错误。一般情况下向上转型不会出现错误,但是向下转型如果忘记而忽略就会出现异常,这个异常在编译时是不会出现的,但是在运行时则会出现ClassCastException异常。