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>
Почему это не разрешено? Я не прошу решения - я знаю, что мог бы просто использовать экземпляр
Проверьте метод или что -то в этом роде, я больше спрашиваю, почему первое приемлемо, а последний не для компилятора.
Если у меня есть абстрактный (или, насколько я знаю) Superclass в Java, как SO: < /p> [code]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> Почему это не разрешено? Я не прошу решения - я знаю, что мог бы просто использовать экземпляр [/code] Проверьте метод или что -то в этом роде, я больше спрашиваю, почему первое приемлемо, а последний не для компилятора.
Python не допускает перегрузку. Поэтому я ожидаю, что он разрешит только один метод класса с тем же именем. Это не тот случай.
Этот код работает без проблем.
class DoubleTest:
def __init__(self):
self._generate_thing()
Я изучаю чистую архитектуру и создаю простое приложение Spring Boot.
Некоторые из моих занятий:
public class EClient implements Serializable, EClientInterface {...}
public interface ClientRepository extends JpaRepository {...}
Я изучаю чистую архитектуру и создаю простое приложение Spring Boot.
Некоторые из моих занятий:
public class EClient implements Serializable, EClientInterface {...}
public interface ClientRepository extends JpaRepository {...}
public class Main { Список f0() { вернуть List.of(List.of(1L)); } Список f1() { return List.of((List) List.of(1L)); } Список f2() { var r = List.of((Список) List.of(1L)); вернуть р; } Список f3() { return List.of((List) List.of(1L), List.of(1L)); }...