Programação Dart - Interfaces
A interfacedefine a sintaxe que qualquer entidade deve seguir. As interfaces definem um conjunto de métodos disponíveis em um objeto. O Dart não tem sintaxe para declarar interfaces. As declarações de classe são, elas mesmas, interfaces no Dart.
Classesdeve usar a palavra-chave implements para poder usar uma interface. É obrigatório para a classe de implementação fornecer uma implementação concreta de todas as funções da interface implementada. Em outras palavras, uma classe deve redefinir todas as funções na interface que deseja implementar.
Sintaxe: Implementando uma Interface
class identifier implements interface_name
Exemplo
No programa a seguir, estamos declarando uma classe Printer. oConsolePrinter classe implementa a declaração de interface implícita para o Printerclasse. omain função cria um objeto do ConsolePrinter classe usando o newpalavra-chave. Este objeto é usado para invocar a funçãoprint_data definido no 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__________");
}
}
Deve produzir o seguinte output -
__________Printing to Console__________
Implementando várias interfaces
Uma classe pode implementar várias interfaces. As interfaces são separadas por uma vírgula. osyntax pois o mesmo é dado abaixo -
class identifier implements interface-1,interface_2,interface_4…….
Os seguintes example mostra como você pode implementar várias interfaces no 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;
}
}
Deve produzir o seguinte output -
The gross total: 1000
Discount:50