成都创新互联网站制作重庆分公司

怎么解析Java枚举抽象方法实例

今天就跟大家聊聊有关怎么解析Java枚举抽象方法实例,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联是一家集网站建设,玉山企业网站建设,玉山品牌网站建设,网站定制,玉山网站建设报价,网络营销,网络优化,玉山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

需求背景

需求已经确定了几个固定的常量值,并且每个常量值都有相同的行为,但是具体实现细节不同。建议使用枚举抽象方法,优点:结构清晰,便于扩展。

枚举类实现抽象方法

与常规抽象类一样,enum类允许我们为其定义抽象方法,然后使每个枚举实例都实现该方法,以便产生不同的行为方式,注意abstract关键字对于枚举类来说并不是必须的,举个栗子:

public enum GradeEnum {  //考试分数划分为A、B、C、D和E 五个等级  A("90~100") {    @Override    public String getGrade(String studentName) {      return studentName + "优秀";    }  }, B("80~89") {    @Override    public String getGrade(String studentName) {      return studentName + "良好";    }  }, C("70~79") {    @Override    public String getGrade(String studentName) {      return studentName + "中等" + getScore();    }  }, D("60~69") {    @Override    public String getGrade(String studentName) {      return studentName + "及格";    }  }, E("0~59") {    @Override    public String getGrade(String studentName) {      return studentName + "成绩很差";    }  };  private String score;  private GradeEnum(String score) {    this.score = score;  }  public String getScore() {    return this.score;  }  public abstract String getGrade(String studentName);}

定义GradeEnum的时候,并未添加abstract关键字。

可以把 enum 类看成是一个普通的类,枚举类都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。

成员方法可以直接操作成员变量,比如score,并且得到返回结果,静态方法是遍历各个实例使用其成员变量计算得到返回结果,方法过程都是根据成员属性进行计算。

如果我们想让各个实例拥有完全不一样的方法实现,不依赖于成员变量,那么,需要定义抽象方法,实例使用{...}匿名块,在匿名块中实现抽象。如上述例子中的抽象方法getGrade。也可以通过枚举类实现接口来达到相同的目的。

看完上述内容,你们对怎么解析Java枚举抽象方法实例有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


分享文章:怎么解析Java枚举抽象方法实例
标题URL:http://cxhlcq.com/article/ipiiss.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部