public class CovariantReturnTypeAndInheritance {
private static class Base<T> {
public Object method() {
return null;
}
public T genericMethod() {
return null;
}
public Number nonGenericMethod() {
return null;
}
}
public static class Class extends Base<Number> {
//covariant return type - this should be considered an override
public String method() {
return null;
}
//adding a parameter should make this no longer override the method from base
public Number genericMethod(int i) {
return null;
}
}
}