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