undefined

Задачи на интерфейсы

Java Core
2 уровень , 9 лекция
Доступна

— Привет, Амиго! Скоро интерфейсы будут тебе сниться. Так что я бы на твоем месте не спал. Вообще! Ха-ха! Вот тебе пара задачек. Пусть интерфейсы навсегда останутся в твоей памяти.

undefined
3
Задача
Java Core, 2 уровень, 9 лекция
Недоступна
Летать охота
Учитель JavaRush Риша Гейтсман на лекциях говаривал, что интерфейс есть законное дитя Абстракции и Полиморфизма. Начинаем его изучать. Вы когда-нибудь летали во сне? Мечтали о полёте наяву? Вот вам задачка: реализуйте интерфейс полёта с двумя методами. Справитесь?
undefined
3
Задача
Java Core, 2 уровень, 9 лекция
Недоступна
Лететь, бежать и плыть
Здорово быть Суперменом! Он летает стремительно, как молния, бегает быстрее ветра, плывет, как Плотва. Или, постойте, Супермен вообще плавать умеет? Впрочем, неважно. Напишите заготовку для супергероя, который будет летать, плавать и бежать. Делать это нужно с помощью реализации интерфейсов CanFly, CanRun, CanSwim.
undefined
3
Задача
Java Core, 2 уровень, 9 лекция
Недоступна
Есть, летать и двигаться
Кто-то добрый и заботливый уже написал для вас чудесные интерфейсы «летать», «передвигаться» и «потреблять пищу». Добавьте их классам собаки, утки, автомобиля и самолёта. Руководствуясь фантазией и здравым смыслом. Иногда последний программисту пригождается.
undefined
3
Задача
Java Core, 2 уровень, 9 лекция
Недоступна
Создаем человека
В этой задаче не будет каких-то изощренных изысков. Нам просто предстоит связать интерфейсы «летать», «бежать» и «плавать» с классами «Человек», «Утка», «Пингвин» и «Самолёт». Знаете, как это сделать? Вперёд! Не знаете? Изучайте соответствующую лекцию, и после этого — вперёд!
undefined
3
Задача
Java Core, 2 уровень, 9 лекция
Недоступна
Класс Human и интерфейсы CanRun, CanSwim
В очередной раз мы, как истинные программисты, должны будем создать человека. Причем, как всегда, путём написания кода. Увы. И наградим мы нашего человека интерфейсами «бежать» и «плавать», но не реализуем их. Ибо наш человек — абстрактен. Звучит понятно? Если нет, пора перечитать лекции по абстрактным классам и интерфейсам.
Комментарии (186)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Евгений Уровень 18 Саратов Россия
25 июля 2021
Немного не по теме интерфейсов, но я все больше и больше люблю комбинацию alt+insert в идешке. И конструкторы там, и геттеры, и сеттеры, теперь еще и переопределять в два клика можно. Кто не знал - наслаждайтесь :)
Mixer-X Уровень 29 Санкт-Петербург
19 июня 2021
Любопытно получается: человек, утка и пингвин бегают, а самолет ездит, но при этом все Run. Хороша английская языка, особенно переводы недопереводчиков.
Василий Уровень 18 Украина
5 апреля 2021
Если все интерфейсы имеют модификатор public, зачем тогда в редакторе нужно прописывать public? И в готовом коде в задачах тоже везде стоит public.
GospodinNoskov Уровень 15 Москва Россия
4 апреля 2021
понял, теперь всё сходится "... пара задачек..." - читать нужно так: порА задачек, просто опечатка и удаление на последний слог)
Evgeny Vlasov Уровень 14
8 марта 2021
Интерфейсы судя по всему мега-важная тема в ООП Математический мозг воспринял на раз два , в отличие от предыдущих размышлений :) они для меня звучат как бла-бла-бла
Алексей Уровень 31 Казань
18 января 2021
почему все задачи уровня Easy?
Сергей Уровень 19
9 января 2021
Что я почерпнул из данных задач: утка - самое скилловое и прогрессивное создание. Остальные так се.
🦔 Виктор Уровень 20 Москва Россия Expert
24 декабря 2020
Сокурсники, в недрах этих задач я нашёл комментарий Кирилла с феноменальным объяснением интерфейсов на кончиках пальцев. В один пост не влезло, поэтому бью на 2 части и предлагаю поднять это сокровище в ТОП. Более лучшего, человеческого объяснения я ещё не встретил, поехали: «Когда мы implements какой-либо интерфейс на свой класс, мы обязуемся описать те методы, что объявлены(абстрактными) в интерфейсе, который мы implements. Пример, передо мной стоит лампа, на ней кнопочка - включить и кнопочка выключить. Я нажимаю на кнопочку включить - лампа включается, нажимаю на выключить - лампа выключается. Это интерфейс для пользователя. Мне, как пользователю, абсолютно все равно что происходит внутри лампы при нажатии на кнопку "Включить" или "Выключить", для меня главное - результат(есть свет или его нет). Если этот пример спроецировать на Жаву, то - 1) У нас есть интерфейс SwitchAble(Переключаемое); 2) В этом интерфейсе объявлены 2 абстрактных метода - TurnOn(включить) и TurnOff(выключить), то есть они без реализации(без тела); 3) Мы создаем класс нашей лампы(public class Lamp); 4) Имплементируем интерфейс SwitchAble( public class Lamp implements SwitchAble); 5) С этого момента мы обязаны переопределить "пустые" методы интерфейса SwitchAble в нашем классе Lamp(иначе не скомпилируется) 6) В переопределенных методах будет описана вся реализация для методов "Включить" и "Выключить"(как подается ток, как убирается ток, куда этот ток идет и тд и тп). 7) Интерфейс - это обязательство того , что твой класс будет УМЕТЬ делать то, что описано(объявлено) в интерфейсе. В данном случае наша лампа умеет переключаться(вкл, выкл). 8) Для примера мы создаем еще один класс - Toaster(Тостер) и имплементируем наш интерфейс SwitchAble, после этого переопределяем все его методы(так как мы обязаны это сделать), но переопределяем по другому(ведь лампа включается и выключается не так как тостер).» Продолжение в посте ниже...
🦔 Виктор Уровень 20 Москва Россия Expert
24 декабря 2020
Продолжение: « 9) Теперь у нас 2 класса, которые умеют "переключаться" - лампа и тостер и мы можем делать такую вещь: SwitchAble thing1 = new Lamp(); //мы присвоили переменной типа "переключаемое" Лампу SwitchAble thing2 = new Toaster();//мы присвоили переменной типа "переключаемое" Тостер thing1.turnOn(); //мы включили лампу thing2.turnOn(); //мы включили тостер То есть мы объединили наши разные вещи(Тостер и Лампу) под одним интерфейсом. То есть, в теории, можно насоздавать объектов, которые умеют переключатся(вкл и выкл)(телевизор, кондиционер, холодильник и другие бытовые приборы). Потом запихать их в один лист List<SwitchAble> list = new ArrayList<>(); //создали лист, который может принимать в себя все что SwitchAble(его имплементации) list.add(new Tel() ) ; //добавили телефон list.add(new Lamp() ); //добавили лампу list.add(new Toaster() ); //добавили тостер list.add(new Conditioner() ); //добавили кондиционер list.add(new Fridge() ); //добавили холодильник for(SwitchAble device: list){ device.turnOn(); } //пробегаемся по каждому элементу листа бытовых приборов и каждому прибору вызываем метод "Включить" Теперь мы включили все приборы, вот и умный дом запрограммирован». Конец цитирования, все овации автору комментария Кириллу. Всё получится!
Regina Bulanova Уровень 19 Рязань Россия
22 декабря 2020
Кому как, а мне нравится чередование сложных и простых уровней. Если бы все уровни были как 8, я бы забила на обучение... Ну и если бы все уровни были простыми, тоже самое