169 похожих чатов

Знаю когда используются интерфейсы, а когда абстрактные классы. Но не

понимаю когда абстрактный класс имплементит интерфейс, для чего это нужно? (когда и в абстрактном классе все можно написать) (С#, TypeScript, Java)\

12 ответов

5 просмотров

ну если тебе некоторые методы нужно уже с имплементацией - тогда юзай абстрактый класс, если только тайпинги - тогда интерфейс

Rustem-Yuzlibaev Автор вопроса

вопрос про то, когда abstract class имплементин interface (когда оба используются сразу)

ну когда он имплементит, методы из интерфейса станути абстрактными

я не понимаю твой вопрос, тебе нужен abstract class если ты хочешь какие-то методы реализовать в нем а некотоыре хочешь сделать abstract(то есть только тайпинги)

Rustem-Yuzlibaev Автор вопроса

Зачем так пишут? Можно же просто abstract class обойтись, не?

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

Ты где этот код увидел?

Просто чтобы например где-то указать не конкретную реализацию(класс), а только интерфейс Handler. А тут конкретно он в абстрактном классе реализовал методы, описанные в интерфейсе

Можно, но лучше сделать через интерфейс, чтобы клиенты реализовали только что им нужно, solid interface segration все дела

Добавлю, что лучше придерживаться dependency inversion и реализовывать зависимости через интерфесы, если бы в данном примере использовали абстрактный класс, то код жёстко был бы привязан к реализации абстрактного класса, а так можно заменить любой реализации это может быть и обычный хендлер и fastHandler или staticHandler))))

И в тестах ещё замокать реализацией интерфейса

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта