Programmazione Dart - Interfacce

Un interfacedefinisce la sintassi a cui deve aderire qualsiasi entità. Le interfacce definiscono un insieme di metodi disponibili su un oggetto. Dart non ha una sintassi per la dichiarazione delle interfacce. Le dichiarazioni di classe sono esse stesse interfacce in Dart.

Classesdovrebbe usare la parola chiave implements per poter usare un'interfaccia. È obbligatorio per la classe di implementazione fornire un'implementazione concreta di tutte le funzioni dell'interfaccia implementata. In altre parole, una classe deve ridefinire ogni funzione nell'interfaccia che desidera implementare.

Sintassi: implementazione di un'interfaccia

class identifier implements interface_name

Esempio

Nel seguente programma dichiariamo una classe Printer. IlConsolePrinter class implementa la dichiarazione di interfaccia implicita per Printerclasse. Ilmain la funzione crea un oggetto della ConsolePrinter classe utilizzando il newparola chiave. Questo oggetto viene utilizzato per richiamare la funzioneprint_data definito nel ConsolePrinter classe.

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

Dovrebbe produrre quanto segue output -

__________Printing to Console__________

Implementazione di più interfacce

Una classe può implementare più interfacce. Le interfacce sono separate da una virgola. Ilsyntax per lo stesso è dato di seguito -

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

Il seguente example mostra come implementare più interfacce in 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; 
   } 
}

Dovrebbe produrre quanto segue output -

The gross total: 1000 
Discount:50