[JavaTutor.eu] Что мы говорим компилятору?

[JavaTutor.eu]<br /> Что мы говорим компилятору?JavaTutor.eu
опубликовал новую статью, ‘Что
мы говорим компилятору?

Java когда мы пишем такой код:

List myList = new
ArrayList()<>;

Когда мы пишем такой код:

List<String> myList = new
ArrayList<>();

мы создаем объект типа ArrayList, но не
объект типа List. Дело в том, что
List является интерфейсом, а
не конкретным классом, поэтому его нельзя
напрямую инстанцировать. Интерфейсы в Java
представляют собой набор методов без их
реализации, а классы, реализующие эти
интерфейсы (например, ArrayList или
LinkedList), предоставляют конкретную
реализацию этих методов.

Почему интерфейс нельзя
инстанцировать?

Интерфейс — это контракт, который
определяет, какие методы должен
реализовать класс, но не указывает, как
именно они должны быть реализованы. Это
объясняет, почему мы не можем создать
экземпляр интерфейса напрямую: он не
содержит кода для выполнения своих
методов.

Почему используется
List<String>, а не
ArrayList<String>?

Использование типа List<String> для
переменной myList обеспечивает
гибкость кода. Мы можем заменить
реализацию, например, на LinkedList,
Vector, или другую реализацию
List без изменения кода в других
местах, которые работают с myList.

Таким образом, при написании
List<String> myList = new ArrayList<>(); мы
говорим компилятору:

  • “Используй интерфейс List
    для определения того, какие методы
    доступны для myList.”
  • “Создай конкретный объект типа
    ArrayList, который реализует интерфейс
    List.”

Вы можете просмотреть последнюю запись по
адресу
https://javatutor.eu/%d1%87%d1%82%d0%be-%d0%bc%d1%8b-%d0%b3%d0%be%d0%b2%d0%be%d1%80%d0%b8%d0%bc-%d0%ba%d0%be%d0%bc%d0%bf%d0%b8%d0%bb%d1%8f%d1%82%d0%be%d1%80%d1%83/?utm_source=subscribe2&utm_medium=email&utm_campaign=postnotify&utm_id=1247&utm_title=%D0%A7%D1%82%D0%BE%20%D0%BC%D1%8B%20%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B8%D0%BC%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D1%83%3F

Вы получили это письмо, так как просили
уведомлять вас о появлении новых записей.
С уважением,
JavaTutor.eu
webmaster@javatutor.eu

Leonid Kleimann

I like Java!

Добавить комментарий