Назад к вопросам
Junior
185
questionbank
Как в Dart объявить интерфейс?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Dart нет явного ключевого слова interface. Интерфейсы неявно объявляются путем определения класса. Любой класс в Dart может служить интерфейсом.
Класс, реализующий интерфейс, должен объявить ключевое слово implements за именем класса и перечислить имена интерфейсов, которые он реализует.
// Интерфейс неявно определен этим классом.
class MyInterface {
void doSomething() {}
int getData() {
return 0;
}
}
// Класс, реализующий интерфейс.
class Implementer implements MyInterface {
@override
void doSomething() {
// Реализация метода из интерфейса
print('Выполняю что-то...');
}
@override
int getData() {
// Реализация метода из интерфейса
return 42;
}
}
void main() {
MyInterface obj = Implementer();
obj.doSomething();
print(obj.getData());
}
Если класс реализует несколько интерфейсов, их можно перечислить через запятую:
class AnotherInterface {
String getName() {
return '';
}
}
class MultiImplementer implements MyInterface, AnotherInterface {
@override
void doSomething() {
print('Делаю что-то из MyInterface...');
}
@override
int getData() {
return 100;
}
@override
String getName() {
return 'Мультиреализатор';
}
}
Использование abstract класса также позволяет определить интерфейс, но с возможностью содержать неабстрактные методы и переменные экземпляра. Однако для чистого определения контракта чаще используется обычный класс или даже abstract класс со всеми абстрактными методами.