Я хочу спросить, что в методе переопределения метод может иметь другой тип возврата.
Напр.
class A{
int x(){
System.out.print("1");
}
}
class B extends A{
void x(){
System.out.print("2");
}
}
class C{
public static void main(){
A a = new B();
a.x();
}
}
Каким будет o/p и будет ли он называться переопределяющим.
Фактически, вы можете сортировать, но ограниченным образом. Детский класс может возвращать подкласс класса, возвращаемого родителем.
class A{
Object x(){
System.out.print("1");
}
}
class B extends A{
@Override
String x(){
System.out.print("2");
}
}
Помимо этого отношения подкласса b/w типы возвратов, №.
Вы не можете делать то, что вы здесь указываете, поскольку вы получите ошибку компилятора, указав, что ваш метод, который вы пытаетесь переопределить столкновения с новым определением, использует несовместимый тип возврата.
Чтобы переопределить метод, вам необходимо иметь такую же подпись метода. Вы можете использовать аннотацию @Override
для проверки этого.
Никакой другой type
return
не является переопределением метода, проверьте, добавив аннотацию @Override