Assume the following existing classes:
class A {
public void foo() { ... };
...
}
class A1 extends A { ... };
class A2 extends A { ... };
...
class A1000 extends A { ... };
now, we need to create a variant of each Axx class that overrides "foo" method. The basic idea was:
class B<T extends A> extends T {
@Override public void foo () { ... };
}
But it seems is not posible to extend a class from one of their parametized types.
The objective is to skip the need of following new code:
class B1 extends A1 { @Override public void foo() { ... }; };
class B2 extends A2 { @Override public void foo() { ... }; };
....
class B1000 extends A1000 { @Override public void foo() { ... }; };
and allow statements like:
...
B<A643> b643 = new B<A643>;
b643.foo();
...
Any hint?
Thanks a lot.