大约 1 分钟
继承 - Python class模拟枚举
class OpCode2:
""" OP_CODE 类似枚举 """
INPUT = 1
OUTPUT = 2
ADD = 3
SUB = 4
MUL = 5
class OpCode(OpCode2):
# 可以继承
DIV = 6
继承 - C结构体
#include <stdio.h>
//父结构体
struct father
{
int f1;
int f2;
};
//子结构体
struct son
{
//子结构体里定义一个父结构体变量,必须放在子结构体里的第一位
struct father fn;
//子结构体的扩展变量
int s1;
int s2;
};
继承 - Java枚举(怎么乱七八糟的)
Java enum
是一种编译器魔术。 在字节码中,任何enum
都表示为扩展抽象类java.lang.Enum
并具有几个静态成员的类。
因此,枚举不能扩展任何其他类或枚举:没有多重继承。
类也不能扩展枚举。 此限制由编译器强制执行
enum Color {red, green, blue}
此类尝试扩展它:
SubColor class extends Color {}
// 结果报错
$ javac SubColor.java SubColor.java: 1 : error: cannot inherit from final Color SubColor class extends Color {}
^ SubColor.java: 1 : error: enum types are not extensible SubColor class extends Color {} ^ 2 errors
Enum
既不能扩展也不能扩展。 那么,如何扩展其功能呢? 关键字是“功能”。 Enum
可以实现方法。
例如,枚举Color
可以声明抽象方法draw()
,每个成员都可以重写它:
enum Color {
red {@Override public void draw() { } },
green {@Override public void draw() { } },
blue {@Override public void draw() { } },
;
public abstract void draw();
}