Почему Java допускает переоценки методов с типами возврата подкласса, но не параметром подкласса?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему Java допускает переоценки методов с типами возврата подкласса, но не параметром подкласса?

Сообщение Anonymous »

Если у меня есть абстрактный (или, насколько я знаю) Superclass в Java, как SO: < /p>

Код: Выделить всё

public abstract class Person {
public abstract Person getPerson(Person p);
}
< /code>
Я заметил, что подкласс может использовать себя для типа возврата, но не параметр при переоценке этого метода: < /p>
public class Child extends Person {
@Override
public Child getPerson(Person p) { //Works fine
return this;
}

@Override
public Person getPerson(Child p) { //Doesn't work
return this;
}
}
< /code>
Почему это не разрешено? Я не прошу решения - я знаю, что мог бы просто использовать экземпляр 
Проверьте метод или что -то в этом роде, я больше спрашиваю, почему первое приемлемо, а последний не для компилятора.

Подробнее здесь: https://stackoverflow.com/questions/676 ... but-not-su
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»