Итак, допустим, у меня есть следующие классы:
Foo
abstract class Foo{
.
.
.
public void setKey(FooKey key){
this.key = key;
}
}
Bar
final class Bar extends Foo{
.
.
.
@Override
public void setKey(BarKey key){ // Can't do this?
super.setKey(key);
}
}
В приведенном выше примере BarKey
является подклассомFooKey
.Здесь я хочу убедиться, что ключ, установленный для Bar
, является определенным подклассом FooKey
(то есть BarKey
).Как мне это сделать?Я делаю это слишком сложным?Есть ли лучший дизайнерский подход?