访问祖先枚举
Access to ancestors enums
我有一个 class A,看起来像这样:
public abstract class A {
protected enum Identifier{
HELLO,WORLD
}
private String identifier;
public void setIdentifier(Identifier identifier){
this.identifier=identifier.toString();
}
public String getIdentifier(){
return identifier;
}
}
现在 class 层次结构是这样的:
B extends A
C extends A
D extends B
E extends D
or A->B->D->E and A->C
现在,如果我想在 E
中使用 setter 或 Identifier enum
或 A
,我该怎么做。而且我还需要在 class C
中使用相同 enum
的 getter。我是否需要在每个子 classes 中创建一个单独的方法来访问祖先?
我采用的方法是:
public abstract class A {
protected enum Identifier{
HELLO,WORLD
}
protected Identifier identifier;
}
在子classE
我说identifier = Identifier.HELLO;
。我不知道这是否是最好的方法,但即使 class C
如果它属于同一实例的一部分,也可以获得与 enum
相同的值。这种方法似乎有点模糊,因为它不是很清楚 identifier
是从哪里继承的。还有更好的方法吗?
作为您现在的代码,您可以在任何子类对象上同时调用 getter 和 setter,除了一个细节:Identifier
枚举也应该是 public,以便任何客户端 class.
可以访问
Public 和 protected 成员自动被 subclasses 继承。其中,protected 成员只能从 subclasses 访问。 public 成员可从任何客户端访问 class。
我有一个 class A,看起来像这样:
public abstract class A {
protected enum Identifier{
HELLO,WORLD
}
private String identifier;
public void setIdentifier(Identifier identifier){
this.identifier=identifier.toString();
}
public String getIdentifier(){
return identifier;
}
}
现在 class 层次结构是这样的:
B extends A
C extends A
D extends B
E extends D
or A->B->D->E and A->C
现在,如果我想在 E
中使用 setter 或 Identifier enum
或 A
,我该怎么做。而且我还需要在 class C
中使用相同 enum
的 getter。我是否需要在每个子 classes 中创建一个单独的方法来访问祖先?
我采用的方法是:
public abstract class A {
protected enum Identifier{
HELLO,WORLD
}
protected Identifier identifier;
}
在子classE
我说identifier = Identifier.HELLO;
。我不知道这是否是最好的方法,但即使 class C
如果它属于同一实例的一部分,也可以获得与 enum
相同的值。这种方法似乎有点模糊,因为它不是很清楚 identifier
是从哪里继承的。还有更好的方法吗?
作为您现在的代码,您可以在任何子类对象上同时调用 getter 和 setter,除了一个细节:Identifier
枚举也应该是 public,以便任何客户端 class.
Public 和 protected 成员自动被 subclasses 继承。其中,protected 成员只能从 subclasses 访问。 public 成员可从任何客户端访问 class。