精华内容
下载资源
问答
  • java 可以 继承枚举 怎么写?
    千次阅读
    2021-03-01 08:46:32

    展开全部

    import java.util.ArrayList;

    import java.util.List;

    public class Color{

    private String value;

    private static List colors = new ArrayList();

    public Color(String value) {

    this.value = value;

    colors.add(this);

    }

    public static Color Red = new Color("red");

    public static Color Blud = new Color("Blud");

    public static Color Green = new Color("Green");

    public void test(){

    System.out.println("我是"+value);

    }

    public static Color[] values(){

    return colors.toArray(new Color[colors.size()]);

    }

    public static void main(String[] args) {

    Color.Red.test();

    Color.Green.test();

    ColorB.black.test();

    for (Color c : ColorB.values()) {

    c.test();

    }

    }

    }

    /**

    * 子类

    * @author 储宝

    *

    */

    class ColorB extends Color{

    public ColorB(String value) {

    super(value);

    }

    public static ColorB  black = new ColorB("black");

    }

    枚举的伪实现。和枚举不同的是,还是可以new一个对象,本来是想把构造私有62616964757a686964616fe59b9ee7ad9431333332633731化的,但是就不能继承了。

    更多相关内容
  • Java中的枚举继承

    2021-02-26 15:44:44
    你不能从另一个枚举继承枚举,尽管你可以让你的枚举实现一个接口。技术问题(所有枚举隐式扩展java.lang.Enum,因此它们不能扩展另一个类,只实现额外的接口)并非偶然:在大多数情况下,枚举的可扩展性证明了这一点是...

    你不能从另一个枚举继承枚举,尽管你可以让你的枚举实现一个接口。技术问题(所有枚举隐式扩展java.lang.Enum,因此它们不能扩展另一个类,只实现额外的接口)并非偶然:

    在大多数情况下,枚举的可扩展性证明了这一点

    是个坏主意。令人困惑的是,扩展类型的元素是实例

    基本类型,反之亦然。没有很好的方法来列举所有的

    基本类型的元素及其扩展名。最后,可扩展性会变得复杂

    设计和实施的许多方面。

    但是,我并不完全理解您的问题:您是否使用values()来迭代枚举?那么你不应该担心用新值扩展你的枚举。

    请更清楚地说明“破碎”应该是什么意思。

    更新:所以你需要为不同类型的星星设置不同的频段 - 这可以使用扩展公共接口的不同枚举来实现,例如:

    interface Band {

    String getName();

    void doStuff();

    ...

    }

    enum BandsVI implements Band {

    V, I;

    public String getName() { return toString(); }

    public void doStuff() { /* do stuff as appropriate for these bands */ }

    ...

    }

    enum BandsJHK implements Band {

    J, H, K;

    public String getName() { return toString(); }

    public void doStuff() { /* do stuff as appropriate for these bands */ }

    ...

    }

    你可以通过使你的星级类通用来使用它们:

    class Star & Band> {

    private Class bandType;

    public Star(Class bandType) { this.bandType = bandType; }

    public void printBandNames() {

    for (Band b : bandType.getEnumConstants())

    System.out.println(b.getName());

    }

    public void doStuffOnAllBands() {

    for (Band b : bandType.getEnumConstants())

    b.doStuff();

    }

    }

    ...

    Star star1 = new Star(BandsVI.class);

    Star star2 = new Star(BandsJHK.class);

    star1.printBandNames(); // prints V I

    star2.printBandNames(); // prints J H K

    如果将乐队组织成不同的组,这很有效。但是,如果有混合波段组的星星,您可能更喜欢另一种方法:

    class Star {

    private List extends Band> bandTypes;

    public Star(List extends Band> bandTypes) { this.bandTypes = bandTypes; }

    public void printBandNames() {

    for (Band b : bandTypes)

    System.out.println(b.getName());

    }

    ...

    }

    ...

    Star star1 = new Star(Arrays.asList(BandsVI.values()));

    Star star3 = new Star(Arrays.asList(new Band[]{BandsVI.V, BandsVI.I, BandsJHK.K}));

    ...

    这允许您设置具有任意混合波段的星星。但是,这样您就无法在频段上使用EnumSet或EnumMap。

    展开全文
  • java枚举类可以被继承吗?

    千次阅读 2021-03-05 22:29:17
    java 枚举java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为:● 枚举继承java.lang.Enum类,而不是默认的Object类。而java.lang.Enum类实现了java.lang....

    a87171b2307b09917451c4756b8240ba.png

    java 枚举类

    java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为:

    ● 枚举类继承了java.lang.Enum类,而不是默认的Object类。而java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable接口。

    ● 非抽象的枚举类默认会使用final修饰,因此不能派生子类

    java中枚举类可以被继承吗?

    java中枚举类不可以被继承。

    枚举类使用enum定义后在编译后默认继承了java.lang.Enum类,而不是普通的继承Object类。enum声明类继承了Serializable和Comparable两个接口。且采用enum声明后,该类会被编译器加上final声明(同String),故该类是无法继承的。

    枚举类的内部定义的枚举值就是该类的实例(且必须在第一行定义,当类初始化时,这些枚举值会被实例化)。

    Java 5新增的enum关键词,可以定义枚举类。该类是一个特殊的类,可以定义自己的field、方法、可以实现接口,也可以定义自己的构造器。

    推荐学习:Java视频教程

    展开全文
  • 又因为 java枚举类型是不支持继承的(至少我这的 jre 不支持),所以想到了 使用实现接口 来达到目的。首先,类库中的枚举:public enum P1Enum {A, B, C;}public enum P2Enum {AA, BB, CC;}然...

    最近在封装一个第三方类库。

    其中要用到类库中提供了很多枚举,出于 不想暴漏类库 且 要限制类库中某些枚举值的使用 的目的,故想到了 继承一遍枚举。

    又因为 java 的枚举类型是不支持继承的(至少我这的 jre 不支持),所以想到了 使用实现接口 来达到目的。

    首先,类库中的枚举:

    public enum P1Enum {

    A, B, C;

    }

    public enum P2Enum {

    AA, BB, CC;

    }

    然后,自己写的接口

    interface IParent {

    T getParent();

    }

    再然后,子类实现接口

    public enum P1S1Enum implements IParent {

    A, B;

    @Override

    public P1Enum getParent() {

    return P1Enum.valueOf(this.name());

    }

    }

    public enum P1S2Enum implements IParent {

    B, C;

    @Override

    public P1Enum getParent() {

    return P1Enum.valueOf(this.name());

    }

    }

    public enum P2S1Enum implements IParent {

    AA, CC;

    @Override

    public P2Enum getParent() {

    return P2Enum.valueOf(this.name());

    }

    }

    这样做,确实可以实现目的

    然后问题来了,

    1.每一个枚举都需要 @Override getParent(), 是否可以通过接口默认实现来解决呢?

    以下这一段代码不正确,因为我不会写了,当然问题就在这里。

    interface IParent> {

    default T getParent() {

    return T.valueOf(null, "A");

    }

    }

    2.有没有更好的实现方式呢?

    先谢答。么么哒~

    展开全文
  • 枚举类型继承的方法_Java语言程6.6.2 枚举类型继承的方法枚举类型实际上是java.lang.Enum的子类。这意味着枚举类型从java.lang.Enum类中继承了许多有用的方法。主要有:(1)public final String name():返回...
  • 枚举继承

    千次阅读 2021-03-05 22:28:31
    我想在“继承”低级枚举的中级命名空间中提供一个类或枚举。namespace low{public enum base{x, y, z}}namespace mid{public enum consume : low.base{}}我希望这是可能的,或者希望可以使用某种类来代替枚举消耗,...
  • java 自定义可继承枚举Enum

    万次阅读 2019-02-25 09:17:35
    1、定义enum抽象类 public class AbstractEnum { private static final Map, AbstractEnum> nameEnumMap = new ConcurrentHashMap(); ...2、实际继承enum,与enum使用方法一致...3、可继续继承枚举,进行枚举分类。
  • 12.1.4 枚举继承自Enum类尽管声明枚举时不能继承超类,但是所有枚举都自动继承超类java.lang.Enum,这个类定义了所有枚举都可以使用的一些方法。Enum类将在本书第Ⅱ部分详细介绍,但是在此先讨论它的3个方法。可以...
  • 枚举类不能继承其它类,但是枚举类可以继承接口,如下接口:public interface Operation {double apply(double x,double y);}BaseOperation、ExtendedOperation实现了此接口:public enum BaseOperation implements ...
  • Java 枚举继承Interface

    千次阅读 2017-02-27 15:32:48
    ///定义接口。 interface testShow { void Show();... ////1、继承接口,实现接口方法,可以让每个枚举类对象分别实现接口,这样就可以实现相同接口方法不同的实现内容。  /////2、继承接口,实现接
  • java继承枚举类型

    千次阅读 2018-04-25 12:14:09
    这个时候就可以使用自定义枚举类型,枚举类型包括有限个命名的值。定义语法:访问修饰符 enum 名字 {列表}。实例化方法:枚举类名 变量名=枚举类名.列表中某一元素。例如:public enum Size {SMALL,MEDIUM,LARGE,...
  • 前言 ...枚举是一种特殊的数据类型,在Java5之后新增的特性,允许用常量来表示特定的数据片断,所有的枚举继承java.lang.Enum类。 由于Java 不支持多继承,所以枚举对象不能再继承其他类,但可...
  • Java枚举(Enum)

    千次阅读 2021-03-01 08:46:34
    一、枚举1、概述枚举:JDK1.5引入的,类似于穷举,一一罗列出来Java 枚举:把某个类型的对象,全部列出来枚举类型的对象是有限、固定的几个常量对象。2、应用什么情况下会用到枚举类型?当某个类型的对象是固定的,...
  • java 枚举

    2021-03-13 03:56:21
    Java枚举的线程安全性及序列化问题--枚举是如何保证线程安全的要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字,他并不是一个类,那么...
  • 一、分析常量的声明是每一个项目中不可或缺的,在Java1.5之前,我们只有两种方式的声明:类常量和接口常量。不过,在1.5版之后有了改进,即新增了一种常量声明方式,枚举常量。代码如下:enum Season{Spring,Summer,...
  • 补充:Java中自定义枚举(Enum)项的值,可设置为指定的值 一、代码 package base.lang; /** * ClassName: StateEnum * @Description: TODO * @author fuming * @date 2016年11月27日 */ public enum StateEnum { //...
  • Java——继承枚举

    千次阅读 2017-07-05 12:59:36
    关于继承的基本知识就不赘述了。关键字:extends,单继承,方法重写,super,this,final,子类父类,抽象类等。继承 多态 一个对象变量可以指示多种实际类型的现象被称为多态。 子类的每个对象也是超类的对象,...
  • 借鉴https://blog.csdn.net/qq_31655965/article/details/55049192在此解释枚举类不能被继承的原因:它已经继承过父类Enum类了,且它的父类实现了serializable接口,即所有enum类都实现了序列化而enum类也不可以被...
  • java枚举接口

    2021-03-04 02:42:08
    java中的枚举类枚举类(enum),与class和interface关键字地位相同。枚举类是一个特殊的类,可以有自己的成员变量、方法、构造器,可以实现一个或...文章云栖-lxl2015-03-06458浏览量Java枚举Java枚举有如下特点:枚举...
  • 深入理解Java枚举类型(enum)

    万次阅读 多人点赞 2017-05-13 18:27:14
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ... 出自【zejian的博客】 关联文章: 深入理解Java类型信息...深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解
  • Java枚举

    2022-03-20 15:58:11
    枚举实现两种方法:自定义实现;enum关键字 1.自定义实现枚举类 构造器私有化 本类内部创建一组对象[例:春夏秋冬] 对外暴露对象(通过为对象添加public final static 修饰符) 解释:public 保证外部可以访问;...
  • Java枚举

    千次阅读 2021-01-15 21:47:46
    Java枚举类轻松入门
  • Java枚举详解

    万次阅读 多人点赞 2019-05-12 23:07:44
    枚举是一个被命名的整型常数的集合,用于声明一组带标识符的常数。枚举在曰常生活中很常见,例如一个人的性别只能是“男...而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。 声明枚举 声明枚举时必须使用 enu...
  • java 枚举类型初理解

    2021-03-13 19:43:58
    简单解释枚举类型(enum)是java5推出的新特性,enum可以记录一些常量,常用来记录状态或类型,方便阅读和维护。示例定义枚举类enum Day {FIRST, SECOUND, THIRD, FOURTH, FIFTH}引用枚举类public class demoEnum {...
  • java枚举方式实现单例

    2021-08-23 20:19:11
    可以看到,之前在枚举体中定义的SMALL、MEDIUM、LARGE变成了公有静态常量,且类中的构造函数是私有的,这就解释了为什么可以用枚举来做单例模式了。
  • Java 枚举(enum) 详解7种常见的用法

    万次阅读 多人点赞 2016-08-11 11:14:45
    JDK1.5引入了新的类型——枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。 大师兄我【大师兄】又加上自己的理解,来帮助各位理解一下。 用法一:常量 在JDK1.5之前,我们定义常量都是:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,936
精华内容 39,574
关键字:

java 枚举的继承

java 订阅