Programowanie w rzutkach - interfejsy

Na interfacedefiniuje składnię, do której musi stosować się każda jednostka. Interfejsy definiują zestaw metod dostępnych na obiekcie. Dart nie ma składni do deklarowania interfejsów. Deklaracje klas same w sobie są interfejsami w Dart.

Classesaby móc korzystać z interfejsu, należy użyć słowa kluczowego implements. Klasa implementująca musi zapewnić konkretną implementację wszystkich funkcji zaimplementowanego interfejsu. Innymi słowy, klasa musi przedefiniować każdą funkcję w interfejsie, którą chce zaimplementować.

Składnia: implementacja interfejsu

class identifier implements interface_name

Przykład

W poniższym programie deklarujemy klasę Printer. PlikConsolePrinter klasa implementuje niejawną deklarację interfejsu dla Printerklasa. Plikmain funkcja tworzy obiekt klasy ConsolePrinter klasa przy użyciu newsłowo kluczowe. Ten obiekt służy do wywoływania funkcjiprint_data zdefiniowane w ConsolePrinter klasa.

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__________"); 
   } 
}

Powinien dać następujący wynik output -

__________Printing to Console__________

Wdrażanie wielu interfejsów

Klasa może implementować wiele interfejsów. Interfejsy są oddzielone przecinkami. Pliksyntax za to samo podano poniżej -

class identifier implements interface-1,interface_2,interface_4…….

Następujące example pokazuje, jak zaimplementować wiele interfejsów w 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; 
   } 
}

Powinien dać następujący wynik output -

The gross total: 1000 
Discount:50