このインターフェースがある場合:
public interface Foo {
void bar();
}
なぜこのように実装できないのですか?
public class FooImpl implements Foo {
@Override
public Object bar() {
return new Object();
}
}
void はすべてと共変であるべきだと思われます。何か不足していますか?
編集:コンパイルできないという技術的な理由ではなく、設計の正当性を探していることをより明確にする必要がありました。void をすべてに対して共変にすることにはマイナスの結果がありますか?