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