Допустим, у меня есть класс 2DPosition:
double x;
double y;
void update(double x, double y) { ... }
double getX() { ... }
double getY() { ... }
класс 3DPosition:
double x;
double y;
double z;
void update(double x, double y, double z) { ... }
double getX() { ... }
double getY() { ... }
double getZ() { ... }
и так далее. Возможно, объекту потребуется использовать одну из этих реализаций, поэтому требуется общий интерфейс. Каков лучший способ создать такую вещь?