Dart-Programmierung - Schnittstellen
Ein interfacedefiniert die Syntax, die jede Entität einhalten muss. Schnittstellen definieren eine Reihe von Methoden, die für ein Objekt verfügbar sind. Dart hat keine Syntax zum Deklarieren von Schnittstellen. Klassendeklarationen sind selbst Schnittstellen in Dart.
Classessollte das Schlüsselwort implements verwenden, um eine Schnittstelle verwenden zu können. Die implementierende Klasse muss eine konkrete Implementierung aller Funktionen der implementierten Schnittstelle bereitstellen. Mit anderen Worten, eine Klasse muss jede Funktion in der Schnittstelle, die sie implementieren möchte, neu definieren.
Syntax: Implementierung einer Schnittstelle
class identifier implements interface_name
Beispiel
Im folgenden Programm deklarieren wir eine Klasse Printer. DasConsolePrinter Klasse implementiert die implizite Schnittstellendeklaration für die PrinterKlasse. Dasmain Funktion erstellt ein Objekt der ConsolePrinter Klasse mit der newStichwort. Mit diesem Objekt wird die Funktion aufgerufenprint_data definiert in der ConsolePrinter Klasse.
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__________");
}
}
Es sollte Folgendes erzeugen output - -
__________Printing to Console__________
Implementieren mehrerer Schnittstellen
Eine Klasse kann mehrere Schnittstellen implementieren. Die Schnittstellen sind durch ein Komma getrennt. Dassyntax für das gleiche ist unten angegeben -
class identifier implements interface-1,interface_2,interface_4…….
Folgende example zeigt, wie Sie mehrere Schnittstellen in Dart implementieren können -
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;
}
}
Es sollte Folgendes erzeugen output - -
The gross total: 1000
Discount:50