Тёмный

Программирование на Java с нуля #13. Интерфейсы, абстрактные классы. 

BoostBrain
Подписаться 20 тыс.
Просмотров 21 тыс.
50% 1

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

Опубликовано:

 

24 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 31   
@artonext
@artonext 4 года назад
Ну я ещё добавлю разницу между Абстрактным Классом и Интерфейсом.... Интерфейс даёт поведение разным объектам которые к примеру умеют летать пример от интерфейса Fly можно имплементить метод fly() и его могу имплементить разные классы типа Птица , Самолёт или Пчела... А абстрактный класс неполноценный класс поэтому у него нету экземпляра и от него наследуются похожие на него класс потому что у них должны быть похожие методы возьмёт к примеру Абстрактный класс Самолёт он же Airplain у самолёта есть части матор колёса и тд...делаем из запчастей методы к примеру motor(); и можно от него наследоваться и будут базовые параметры...И добавлю ещё почему использовать абстрактный класс все абстрактные классы это абстрактные сущности то есть грубо говоря неконкретные но мы может из Самолёта наследоваться своим классом конкретным самолётом к примеру модель которого Ту-204 и всё готово можно дописывать свои конкретные параметры... Всем спасибо удачи (не лайкайте не для этого старался ^_^)
@Vl-TV
@Vl-TV 2 года назад
Спасибо лучше что видел в ютуб на эту тему!
@ЛеонидДмитриев-й9з
Спасибо, вот именно после Вашего объяснения "прострелило", я просто учусь у разных педагогов, специально смотрю одну тему у разных людей
@ПетрЯкимов-м9о
@ПетрЯкимов-м9о 6 лет назад
Огромное спасибо за урок, пересмотрел множество видео на ютубе как местных так и зарубежных, так ине смог понять в чем вся суть интерфейса и абстрактных классов, а тут 25 минут и вуаля Прозрел!!
@alexb.2616
@alexb.2616 3 года назад
Спасибо! Вот теперь понял окончательно. Столько переслушал всего. Подписался.
@dimsondimson8613
@dimsondimson8613 5 лет назад
Спасибо ! Отличные уроки. Все грамотно и доступно !
@MRratatyq
@MRratatyq 6 лет назад
Спасибо огромное, долго не мог понять зачем вообще нужен abstract и interface, а тут посмотрел ваше видео и сразу все понял)
@АлмазХалитов-ъ3д
@АлмазХалитов-ъ3д 4 года назад
Добрый день! Очень понятное и доступное изложение материалов для тех, кто только начинает учиться. Было бы круто, если бы те же самые темы , например Коллекции, Ввод-вывод данных и паттерны проектирования по принципам ООП раскрылись в других лекциях чуть более подробно и глубже по той же схеме обучения.Спасибо.
@dimsondimson8613
@dimsondimson8613 5 лет назад
В случае интерфейса, цвет можно было указывать в конструкторе при создании объекта дочернего класса, а теперь когда используем абстрактный класс, гибкость исчезла и нужно цвет указывать явно в каждом конструкторе наследуемого класса (круг, четырехугольник) , правильно я понимаю ??? А можно же было оставить эту возможность (указать цвет при создании объекта) и в этом случае, при варианте абстрактного класса ? public Rectangle (double h, double w, string c){ super (c); height=h; width=w; }
@АмэйзингЧенал
@АмэйзингЧенал 3 года назад
Короч он как все , не юзает нигде то о чем снимает,не соображает . Та и вообще , где в реальности это используется , название приложения ,игры, сайта и и.д.?
@filipfomin6287
@filipfomin6287 4 года назад
Автор просто бог, спс огромное, в сравнении с 4 другими видеоавторами выглядит немного менее уверенным(просто изза достаточно низкой скорости набора) но в компенсацию просто в несколько раз проще и детальнее чем ближайшие коллеги (только Алишев и книга "Философия джавы" может попытаться конкурировать но у вас куда более комплексная информация) ^^
@РусланБаринов-м5е
Хорошие уроки. Спасибо Вам:)
@Anton-Os
@Anton-Os 7 лет назад
Спасибо, отличное видео!
@SerezhaZhi
@SerezhaZhi 2 года назад
Классные уроки, на калькуляторе записывал?
@alexv7137
@alexv7137 4 года назад
time frame -(временное ограничение) Теория 0-09 Абстрактные классы 3-46 Интерфейсы 4-02 Отличие Интерфейса и Абстрактного класса ( Практика 5-20 Интерфейсы 6-25 создаем интерфейс 7-20 10-40 Класс Круг - реализация ( implements ) интерфейса 14-40 Класс Прямоугольник - реализация ( implements ) интерфейса 17-03 19-20 Абстрактный класс ( переделываем интерфейс) 22-20 расширение (extends) круга и прямоугольника абстрактным классом Shape 19-20 Абстрактные классы 19-20 Абстрактный класс ( переделываем интерфейс) 22-20 расширение (extends) круга и прямоугольника абстрактным классом Shape 23-35 конструктор Абстрактного класса.
@petro30
@petro30 7 лет назад
классный урок))))
@ВикторЖих-т5х
@ВикторЖих-т5х 6 лет назад
А если нам надо чтобы прямоугольники были разных цветов или окружности разных цветов?
@stepananifer2445
@stepananifer2445 3 года назад
В таком случае конструкторы классов наследников (круг и прямоугольник) выглядят след. образом: public Circle(double radius, String color) { super(color); this.radius = radius; } public Rectangle(double height, double width, String color) { super(color); this.height = height; this.width = width; }
@АлексейЯ-б5л
@АлексейЯ-б5л 7 лет назад
Довольно много времени провёл разбираясь в механизмах расширения абстрактных классов и интерфейсов. Может для наглядности представлять такие запутанные отношения в виде блок-схемы? Как насчёт самостоятельной работы над темой? В конце публикуется мини-задание и каждый самостоятельно его делает на основе пройденного материала.
@jus2te593
@jus2te593 5 лет назад
Здравствуйте, урок полезный, но очень сжатый. Мне кажется стоило рассказать про default методы. Так же принципиальную разницу между интерфейсом и абстрактным классом и для чего они нужны.
@hadow7634
@hadow7634 4 года назад
Здравствуйте, теперь же, вроде, у интерфейсов может быть реализация у методов
@BoostBrainCourse
@BoostBrainCourse 4 года назад
Да, все правильно, ввели методы по умолчанию. Но я никому не советую их использовать, кроме задач с переписыванием большого количества устаревшего кода.
@Kadabra1981
@Kadabra1981 6 лет назад
Спасибо за урок, но возник вопрос. В случае замены интерфейса на абстрактный класс мы всегда будем получать объекты с цветом указанным в классе объекта, а в случае с интерфейсом мы полностью определяли объект в момент создания - как можно этот функционал реализовать через абстрактный класс?
@BoostBrainCourse
@BoostBrainCourse 6 лет назад
Метод возврата цвета можно переопределить в классе-потомке. То есть написать метод с полностью совпадающей сигнатурой и пометить его аннотацией @Override. И в этом методе можно возвращать цвет специфичный для потомка, а не для абстрактного класса.
@kronst
@kronst 5 лет назад
@@BoostBrainCourse Можно ведь было сохранить передачу цвета, как параметра в конструктор Circle(int r, String c) и Rectangle(int h, int w, String c), а потом передать этот параметр в super(c). Понимаю, что это всего лишь придирка, ведь по факту главная цель урока заключалась в том, чтобы помочь понять тему, что у Вас в который раз отлично получилось.
@kostiantyngavura7100
@kostiantyngavura7100 5 лет назад
добрый день есть ли возможность скачать уроки офф лайн?
@BoostBrainCourse
@BoostBrainCourse 5 лет назад
Я пользуюсь вот этим сервисом - getvideo.org/%D0%BA%D0%B0%D0%BA-%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C-%D1%81-youtube
@abayassenov416
@abayassenov416 7 лет назад
Приветствую дорогой автор видео. На курсах по программированию меня ругали за то что пытаюсь вывести гетеры сетеры в интерфейс - типа плохая практика , а так же за то что реализацию того же арэйлиста делаю на прямую через класс , а не абстракция тип Лист = нью арэй лист . Почему в своемм видео вы делаете так , за что на курсах ругают . С оговоркой эти курсы" Крупной компании ".
@BoostBrainCourse
@BoostBrainCourse 7 лет назад
Не совсем понимаю, что значит вывести геттеры и сеттеры в интерфейс. Имеется в виду создание нового interface? Если так, то непонятно зачем.Обычно геттеры и сеттеры это признак т.н. POJO, а там интерфейс действительно не нужен. Что касается конкретизации типа, то я, честно говоря, не знаю, зачем на курсах требуют пользоваться только абстрактным классом. Абстрактные классы предпочтительнее указывать в объявлении метода, например, как входные данные, или в объявлении переменных класса. Но зачем непосредственно в коде использовать абстрактные типы для переменных не совсем понятно. Наверное, чтоб не использовать какие то специфические особенности, поскольку это может затруднить переход на другую реализацию. Но с другой стороны всякое правило должно иметь разумные пределы применения.
@gamerecords_site
@gamerecords_site 4 года назад
не плохо бы если был бы код
@АмэйзингЧенал
@АмэйзингЧенал 4 года назад
Скорость на + 1,75!!!🤬
Далее
КАК ВАМ ТАКОЙ ТЮНИНГ НИВЫ?
00:42
Просмотров 231 тыс.
Artist 4-Mavsum 20-son FINAL  (21.09.2024)
2:20:46
Просмотров 395 тыс.
КАК ВАМ ТАКОЙ ТЮНИНГ НИВЫ?
00:42
Просмотров 231 тыс.