java 枚举不能继承_Java中的枚举类为何不能有public构造器
从Java 5開始有了枚举类,须要注意的是enum定义的类默认继承的是java.lang.Enum类而不是Object类。
同一时候注意枚举类不能派生子类(类的默认修饰符为final)。其原因基于它仅仅有private构造器。那为什么要设计成这样呢?
事实上非常easy想明确,所谓枚举类就是有包括有固定数量实例(而且实例的值也固定)的特殊类,假设其含有public构造器,那么在类的外部就能够通过这个构造器来新建实例,显然这时实例的数量和值就不固定了,这与定义枚举类的初衷相矛盾,为了避免这样的形象。就对枚举类的构造器默认使用private修饰。假设为枚举类的构造器显式指定其他訪问控制符,则会编译出错。
另外。注意枚举类的全部实例必须在其首行显式列出,否则它不能产生实例。
例如以下是一个使用枚举类的经典演示样例:
import java.util.*;
enum Planet
{
MERCURY,VENUS,EARTH,MARS,JUPITER,SATURN,URANUS,NEPTUNE
}
public class EnumSample
{
public void flyTo(Planet planet)
{
String destination="";
switch(planet)
{
case MERCURY:
destination="水星";
break;
case VENUS:
destination="金星";
break;
case EARTH:
destination="地球";
break;
case MARS:
destination="火星";
break;
case JUPITER:
destination="木星";
break;
case SATURN:
destination="土星";
break;
case URANUS:
destination="天王星";
break;
case NEPTUNE:
destination="海王星";
break;
}
System.out.println("The destination is "+destination);
}
public static void main(String[]args)
{
EnumSample sample=new EnumSample();
sample.flyTo(Planet.NEPTUNE);
}
}
java 枚举不能继承_Java中的枚举类为何不能有public构造器相关推荐
- java 枚举的继承_java中枚举类可以被继承吗?
java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...
- java枚举类型定义_java中的枚举类型怎么定义?
展开全部 Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自62616964757a686964616fe59b9ee7ad9431333236366331己的变量, ...
- java long类型判断_Java中的long类型和Long类型比较大小
Java中我们经常要做一些判断,而对于判断的话,用的最多的便是">"."=="." Java中Long和long的区别 Java的数据类型分为两 ...
- java matcher group方法_Java中正则表达式相关类中Matcher.group()方法
##简介 最近在做一个项目,需要使用matcher.group()方法匹配出需要的内容. ##分组 正则表达式 AA((A)(B(C))) group()方法是针对()来说的,group(0)指的是整 ...
- java 复数的除法_Java中 如果复数类成员是int型,怎么实现两个复数相除
(1) 复数类Complex 的属性有: RealPart : int型,代表复数的实数部分 ImaginPart : int型,代表复数的虚数部分 package applet; impor ...
- java 枚举_Java中的枚举类型(Enum)详解
文章前记 程序员工作久了便可能整日忙碌于"增删改查"中,迷失方向,毫无进步. 该公众号致力于分享软件开发相关的原创干货,助你完成从程序员到架构师的进阶之路! 努力!做一个NB的Co ...
- java定义枚举并赋值_java中枚举的特性是什么?如何赋值?
上次已经为大家介绍过java枚举的概念是什么的主要内容了.今天再来为大家介绍一些相关的知识,也是关于java枚举的一些内容,也就是它的特性以及如何赋值,一起来了解一下吧. 首先说一下,java中枚举的 ...
- java 7种枚举类型_Java中的枚举类型
枚举类比较用 == 还是 equals,有啥区别? java 枚举值比较用 == 和 equals 方法没啥区别,两个随便用都是一样的效果.因为枚举 Enum 类的 equals 方法默认实现就是通过 ...
- java枚举的特点_Java中有些好的特性(二):枚举
前言 我在写上一篇时,开始选了一个很土的名字"Java超过C#的地方",然后引起了某些同学的不满,后来修改了个名.我在这里再次申明一下,我没有贬低任何语言之意,纯粹是从一个.NET ...
最新文章
- 前端代码规范-CSS
- Java 9.while语句
- mysql倍增表的内容,mysql - DATEDIFF不会在触发器内倍增 - SO中文参考 - www.soinside.com...
- 数控铣削图案及编程_数控铣削简单图案编程
- bzoj1715[Usaco2006 Dec]Wormholes 虫洞
- 存储安全与数据恢复基础手册-服务器篇
- WPF 分页控件的简单实现
- 串口助手驱动_STM32Cube22(补充) | 使用硬件I2C驱动OLED(SSD1306)
- sqlalchemy基本类型
- c语言实现 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
- Mapx自带的工具的理解
- 程序员初学者应该如何自学编程
- K-mer特征提取one-hot编码
- matlab 中gradient()函数的用法
- nginx.conf配置外部 .conf文件
- 交换机console接口设置密码
- 苹果自带地图包括路线规划
- 哪五种人不适合学编程?
- Istio-智能DNS
- java向上转型与向下转型
热门文章
- altium designer快捷键大全
- mysql的权限管理
- 如何理解 if __name__ == “__main__“:
- 伺服系统 计算机仿真,减摇鳍电伺服系统的计算机仿真研究-应用科技-哈尔滨工程大学.PDF...
- java hashset 源码_Java集合:HashSet的源码分析
- 为什么TCP连接不可靠
- ahjesus自定义隐式转换和显示转换
- 了解了这些才能开始发挥jQuery的威力
- 常用的 iptables配置脚本
- mysql-----触发器