Учебники

Программирование Дартс — Интерфейсы

Интерфейс определяет синтаксис, которого должен придерживаться любой объект. Интерфейсы определяют набор методов, доступных для объекта. У Dart нет синтаксиса для объявления интерфейсов. Объявления классов сами по себе являются интерфейсами в Dart.

Классы должны использовать ключевое слово Implements, чтобы иметь возможность использовать интерфейс. Для реализующего класса обязательно предоставить конкретную реализацию всех функций реализованного интерфейса. Другими словами, класс должен переопределить каждую функцию в интерфейсе, который он хочет реализовать.

Синтаксис: реализация интерфейса

class identifier implements interface_name

пример

В следующей программе мы объявляем класс Printer . Класс ConsolePrinter реализует неявное объявление интерфейса для класса Printer . Функция main создает объект класса ConsolePrinter с помощью ключевого слова new . Этот объект используется для вызова функции print_data, определенной в классе ConsolePrinter .

Live Demo

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 —

Live Demo

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; 
   } 
}

Он должен произвести следующий вывод