@thatmaniscool

В чем разница между и в Java?

Например, я создаю класс-родитель, от которого будет все наследоваться:
public class Parent <T extends Parent>{
	private T element;
	public Parent <T> set (T element){
		this.element = element;
		return this; // Возращаем копию класса.
	}
	public T get (){
		return element;
	}
}

После чего создаю несколько наследников.
public class Child extends Parent <Child>{}
public class Child2 extends Parent <Child>{}


Так вот, в чем отличие между таким же кодом, только без расширение параметров
public class Parent <T> { // Без extends Parent
	private T element;
	public Parent <T> set (T element){
		this.element = element;
		return this; // Возращаем копию класса.
	}
	public T get (){
		return element;
	}
}

Если все работает идентично?
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ferasinka
В первом случае у вас все T будут обращены в Parent, а во втором случае в Object
javapapers.com/core-java/type-erasure
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы