I have a base class with two derived classes which all seem to use the same enum. I want to use the enum at the base class, but change the assigned value depending on the instance of the derived class used. How do I do this?
The Base class:
public class Base {
private MyEnum data = MyEnum.Z;
public Base() {
}
public void baseMethod() {
System.out.println("base data:? "+MyEnum.X);
data = MyEnum.Y;
data.showVal();
System.out.println("base value:? "+data);
}
//enum yet to be added
protected enum MyEnum {
X(0,2),
Y(1,3),
Z(4,5);
private int a,b;
MyEnum(int x, int y) {
a=x;
b=y;
}
public void showVal() {
System.out.println("a="+a+",b="+b);
}
}
}
The two derived classes:
public class A extends Base {
private MyEnum data = MyEnum.Z;
public A () {
}
public void firstMethod() {
System.out.println("A's DATA: "+MyEnum.X);
data = MyEnum.Y;
data.showVal();
System.out.println("A's value: "+data);
baseMethod();
}
protected enum MyEnum {
//values are different
X(10,11),
Y(12,13),
Z(14,15);
private int a,b;
MyEnum(int x, int y) {
a=x;
b=y;
}
public void showVal() {
System.out.println("a="+a+",b="+b);
}
}
}
public class B extends Base {
private MyEnum data = MyEnum.Z;
public B() {
}
public void secondMethod() {
System.out.println("B'S DATA: "+MyEnum.X);
data = MyEnum.Y;
data.showVal();
System.out.println("B's value: "+data);
baseMethod();
}
protected enum MyEnum {
//values are different
X(20,21),
Y(22,23),
Z(24,25);
private int a,b;
MyEnum(int x, int y) {
a=x;
b=y;
}
public void showVal() {
System.out.println("a="+a+",b="+b);
}
}
}
Please help.