Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 确认枚举抽象方法实现和静态类方法的逻辑,如果它们返回其他对象的实例怎么办_Java_Design Patterns_Enums_Singleton_Abstract - Fatal编程技术网

Java 确认枚举抽象方法实现和静态类方法的逻辑,如果它们返回其他对象的实例怎么办

Java 确认枚举抽象方法实现和静态类方法的逻辑,如果它们返回其他对象的实例怎么办,java,design-patterns,enums,singleton,abstract,Java,Design Patterns,Enums,Singleton,Abstract,我对枚举中实现的方法有点困惑。它们是否与特定类的静态方法相同?换句话说,它们不能与特定实例关联?但是,枚举定义中的不同枚举字段似乎是特定的实例。所以周围有多个实例,不是吗?请帮我解开这个概念。如果枚举的每个方法实现都返回其他对象的实例呢?抱歉,我知道我可能在这里问了很多问题,但我正在试图理解方法背后的基础,该方法在枚举中被定义为一个抽象方法,用于单例意义上的多态性(哇,这真是一口) 提前感谢。在Java中,Enum充当一个类(它在内部扩展对象类)。我们可以在enum中定义属性(字段)和方法。枚举

我对枚举中实现的方法有点困惑。它们是否与特定类的静态方法相同?换句话说,它们不能与特定实例关联?但是,枚举定义中的不同枚举字段似乎是特定的实例。所以周围有多个实例,不是吗?请帮我解开这个概念。如果枚举的每个方法实现都返回其他对象的实例呢?抱歉,我知道我可能在这里问了很多问题,但我正在试图理解方法背后的基础,该方法在枚举中被定义为一个抽象方法,用于单例意义上的多态性(哇,这真是一口)


提前感谢。

在Java中,Enum充当一个类(它在内部扩展对象类)。我们可以在enum中定义属性(字段)和方法。枚举方法是实例方法。若您正在方法中写入静态关键字,那个么只有它们成为状态方法。不是字段,而是枚举的值充当该枚举的实例。由于它的方法概念与类方法相同,所以可以返回枚举方法中充当枚举实例方法的任何类的实例。不能在枚举中定义抽象方法,因为它不是抽象类。Enum旨在提供单个实例,就像在Java6中一样,您可以将Enum用作单音

public enum Animal{
    TIGER, LION
}
在本例中,我们将有两个动物类的实例(老虎、狮子)。无法在外部创建更多的枚举实例