Программирование дротиков - интерфейсы

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