Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Создание объекта интерфейсного типа


Автор: SamuraiD 3.3.2008, 16:53
Начал изучать Java, дошёл до описания понятия "интерфейсы". Говорится, что создать объект интерфейсного типа нельзя, т.е. при попытке скомпилировать следующий код, появится ошибка:

Код


List tmp = new List();




Код

cannot be instantiated


C этим всё понятно. Однако, если использовать методы, которые в качестве результата возвращают ссылку интерфейсного типа, то оказывается, что можно делать следующее:

Код

Vector vec = new Vector();
vec.addElement(1);
vec.addElement(2);
vec.addElement(3);

List lst = vec.subList(0, 1); 


Метод subList возращает ссылку на тип List. Какого типа будет объект, на который указывает ссылка lst ?


Автор: Kangaroo 3.3.2008, 17:13
Цитата(SamuraiD @  3.3.2008,  15:53 Найти цитируемый пост)
Какого типа будет объект, на который указывает ссылка lst ?

Будет объект любого типа, который имплементирует этот интерфейс (или null  smile ).


Про интерфейсы читаем http://forum.vingrad.ru/faq/topic-157992.html  smile


Автор: AlexeyVorotnikov 5.3.2008, 12:08
В данном конкретном случае lst будет класса RandomAccessSubList.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)