Интерфейс определяет синтаксис, которого должен придерживаться любой объект. Интерфейсы определяют набор методов, доступных для объекта. У Dart нет синтаксиса для объявления интерфейсов. Объявления классов сами по себе являются интерфейсами в Dart.
Классы должны использовать ключевое слово 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__________"); } }
Он должен произвести следующий вывод —
__________Printing to Console__________
Реализация нескольких интерфейсов
Класс может реализовывать несколько интерфейсов. Интерфейсы разделены запятой. Синтаксис для того же приведен ниже —
class identifier implements interface-1,interface_2,interface_4…….
В следующем примере показано, как вы можете реализовать несколько интерфейсов в 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; } }
Он должен произвести следующий вывод —