Случайно обнаружил нетипичную проблему с параметризацией и наследованием в Java.
Сразу оговорюсь, что все это представляет только академический интерес. В реальной жизни так криво писать никто не будет. Но формально такого быть не должно:
MyClass is not abstract and does not override abstract method test(java.lang.Class)
Сразу оговорюсь, что все это представляет только академический интерес. В реальной жизни так криво писать никто не будет. Но формально такого быть не должно:
Компилятор выдает ошибку:Interface.java
public interface Interface {
void test(Class<Object> clazz);
}
BaseClass.java
public abstract class BaseClass<T> implements Interface {
abstract public void test(Class<Object> clazz);
}
MyClass.java
public class MyClass extends BaseClass {
public void test(Class<Object> clazz) {
}
}
MyClass is not abstract and does not override abstract method test(java.lang.Class)