父类中能否实现一个方法(方法中的参数是子类中定义的成员),使得子类都能继承该方法
能不能在父类中实现一个方法,使得每一个子类都具有该“类型”的方法,只是不同的子类中该方法的参数都是自己定义的成员变量。
代码,如下,创建了一个枚举,枚举对象中的属性是 值-中文描述的对应,希望输入一个值,马上获取到对应的中文描述
package com.manager.enumeration;
public enum Enum2 {
SMALL(100, "s"),MEDIUM(101, "m"),LARGE(102, "l"),HUGE(103, "h");
/**
* code 与 中文描述 进行一一对应
* 输入 code 的值获取到对应的中文
* @param code
* @return
*/
public String getMessageByCode(int code){
Enum2 [] enmu2s = Enum2.values();
for(Enum2 enum2 : enmu2s){
if(enum2.getCode() == code){
return enum2.getMessage();
}
}
return "";
}
Enum2(int code, String message){
this.code = code;
this.message = message;
}
private int code;
private String message;
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
}
如上,希望自己创建的枚举都具有这样的的功能 getMessageByCode,类似于每一个枚举都具有的vlaues()方法,但是找不到value的实现方式,所以想写一个抽象类来实现该功能,由枚举来继承这个抽象类,不知道是否可行
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ioc控制反转,你值得拥有。
enum类是无法被继承的,编译器会自动把枚举用继承enum类来表示,但这一过程是由编译器完成的,枚举也不过是个语法糖。被声明为枚举以后其实跟定义了一个类差不多,比如可以有构造方法什么的。
因为枚举不可能被继承,因此写抽象类的想法不可以实现,但是枚举可以实现接口,所有两种方法如下:
或者
在本方法中添加所需的方法,也就是你上面的方式:
}
方法三:
改写java.lang.Enum: