Программирование дротиков - интерфейсы
An interfaceопределяет синтаксис, которого должна придерживаться любая сущность. Интерфейсы определяют набор методов, доступных для объекта. Dart не имеет синтаксиса для объявления интерфейсов. Объявления классов сами по себе являются интерфейсами в Dart.
Classesследует использовать ключевое слово Implements, чтобы иметь возможность использовать интерфейс. Реализующий класс обязательно должен предоставить конкретную реализацию всех функций реализованного интерфейса. Другими словами, класс должен переопределить каждую функцию в интерфейсе, который он хочет реализовать.
Синтаксис: реализация интерфейса
class identifier implements interface_name
пример
В следующей программе мы объявляем класс Printer. ВConsolePrinter класс реализует неявное объявление интерфейса для Printerкласс. Вmain функция создает объект ConsolePrinter класс с использованием newключевое слово. Этот объект используется для вызова функцииprint_data определено в ConsolePrinter класс.
void main() {
ConsolePrinter cp= new ConsolePrinter();
cp.print_data();
}
class Printer {
void print_data() {
print("__________Printing Data__________");
}
}
class ConsolePrinter implements Printer {
void print_data() {
print("__________Printing to Console__________");
}
}
Должно получиться следующее output -
__________Printing to Console__________
Реализация нескольких интерфейсов
Класс может реализовывать несколько интерфейсов. Интерфейсы разделяются запятой. Вsyntax для того же самого дано ниже -
class identifier implements interface-1,interface_2,interface_4…….
Следующее example показывает, как вы можете реализовать несколько интерфейсов в Dart -
void main() {
Calculator c = new Calculator();
print("The gross total : ${c.ret_tot()}");
print("Discount :${c.ret_dis()}");
}
class Calculate_Total {
int ret_tot() {}
}
class Calculate_Discount {
int ret_dis() {}
}
class Calculator implements Calculate_Total,Calculate_Discount {
int ret_tot() {
return 1000;
}
int ret_dis() {
return 50;
}
}
Должно получиться следующее output -
The gross total: 1000
Discount:50