Для чего в Java нужны интерфейсы

В этой лекции поговорим о важном понятии в Java — интерфейсы. Слово тебе наверняка знакомо. Например, интерфейсы есть у большинства компьютерных программ и игр. В широком смысле интерфейс — некий «пульт», который связывает две взаимодействующие друг с другом стороны. А что конкретно это слово означает в Java, читай подробнее в лекции.

Полезная серия материалов

Как пишет автор этого небольшого цикла статей, материалы будут полезны тем, кто разобрался, как делать интерфейсы и их наследование, реализовал несколько примеров, но так и не понял, зачем это делать. “Прикладной” аспект — в текстах ниже:

Разница между абстрактными классами и интерфейсами

Из этой лекции ты узнаешь, чем абстрактные классы отличаются от интерфейсов и разберешь примеры с распространенными абстрактными классами.

Отличия абстрактного класса от интерфейса — важная тема. О разнице между этими понятиями тебя спросят на 90% будущих собеседований. Поэтому обязательно разберись с прочитанным.

10 вопросов по абстрактным классам и интерфейсам с собеседований по Java

В этой статье мы рассмотрим частые вопросы по абстрактным классам и интерфейсам, которые задают на собеседованиях по Java разного уровня. Большинство из них понятны даже начинающему Java-программисту. В основном это вопросы на чистое знание, но некоторые из них, например, о различиях между абстрактными классами и интерфейсами в Java или о том, когда лучше предпочесть абстрактный класс интерфейсу, могут оказаться достаточно непростыми.

undefined
8
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Мосты
Создайте интерфейс Bridge с методом getCarsCount(), подсчитывающим количество машин и классы WaterBridge и SuspensionBridge, которые реализуют этот интерфейс. Метод getCarsCount() должен возвращать любое фиксированное значение типа int и это значение должно быть разным для разных классов.
undefined
8
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Дегустация вин
У 30% роботического населения планеты Сото наблюдается одна зависимость, которая вызывает опасения у остальных 70% роботического населения планеты Сото: алкоголь. Точнее, программирование алкоголя, речь о роботах всё-таки. Наконец-то вы сможете это сделать!
undefined
16
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
User, Loser, Coder and Proger
1. Ввести [в цикле] с клавиатуры несколько строк (ключей). Строки(ключи) могут быть такими: "user", "loser", "coder", "proger". Ввод окончен, когда строка не совпадает ни с одной из выше указанных. 2. Для каждой введенной строки нужно: 2.1. Создать соответствующий объект [см. Person.java], например
undefined
4
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Реализовать метод printMainInfo
Напишите реализацию метода printMainInfo, чтобы: * Если в метод передают объект типа Drawable, у этого объекта вызывался метод draw. * Если в метод передают объект типа Movable, у этого объекта вызывался метод move.
undefined
8
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Computer
Собираем новый компьютер для работы, и делаем это с помощью программирования и ООП-инструментов. У нас будет не просто класс Computer, но интерфейс CompItem, который будет реализован в классе Computer.
undefined
16
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
MovieFactory
У вас есть код программы MovieFactory, разберитесь, что она умеет делать. Добавьте классы Cartoon, Thriller и разберитесь, как мы получаем объект класса SoapOpera по ключу "soapOpera".
undefined
8
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Клининговый центр
Создаем виртуальный клининговый центр с методом cleanAllApartments для всех типов квартир и индивидуальные методы для уборки одно- двух- и трехкомнатных квартир.
undefined
8
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Стой, кто плывет?
Подумайте, как связаны интерфейсы Swimmable(способен плавать) и Walkable(способен ходить) с классом OceanAnimal(животное океана). Расставь правильно наследование интерфейсов и класса OceanAnimal. И как могут быть связаны классы Orca(Косатка), Whale(Кит), Otter(Выдра) с классом OceanAnimal...
undefined
16
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Валюты
Поработаем с деньгами. Вам предстоить расширить функциональность программы, которая позволяет производить манипуляции с валютами. Какие именно — узнаете из условия задачки. Для начала в абстрактном классе Money создайте приватное поле amount типа double...
undefined
8
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Исправь четыре ошибки
В этом коде есть четыре ошибки, и ваша задача... Да вы уже догадались, какова ваша задача. Первым делом вам нужно разобраться, что делает код, кое-что создать и исправить ошибки, которые были оставлены до вашего вмешательства в код (и после тоже, если они есть).
undefined
8
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Нашествие исключений
На самом деле исключений в программах бывает море, и вы к ним со временем привыкните. Начинайте прямо сейчас: заполните список exceptions десятью(10) различными исключениями. Первое исключение уже реализовано в методе initExceptions.
undefined
16
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
НОД
Продолжаем наши попытки войти в космическое пространство планеты Линейный Хаос. И вот ещё одно задание с приграничного собеседования для юных поступающих: найти наибольший общий делитель (или НОД) двух целых положительных чисел.
undefined
8
Задача
Java Core, 4 уровень, 8 лекция
Недоступна
Singleton
Класс реализует паттерн Singleton, если позволяет создать всего один объект своего типа. Вам нужно создать класс Singleton в отдельном файле, добавить в него статический метод getInstance (он должен возвращать один и тот же объект класса при любом вызове). Подумайте, каким образом можно запретить создание других объектов этого класса.