介面定義任何實體必須遵守的語法。介面定義了一組對象可用的方法。Dart沒有聲明介面的語法。類聲明本身就是Dart中的介面。
類應該使用implements
關鍵字來使用介面。實現類必須提供已實現介面的所有功能的具體實現。換句話說,類必須重新定義它希望實現的介面中的每個函數。
語法:實現介面
class identifier implements interface_name
示例
在以下程式中,聲明了一個類:Printer
。ConsolePrinter
類實現Printer
類的隱式介面聲明。main
函數中使用new
關鍵字創建ConsolePrinter
類的對象。該對象用於調用ConsolePrinter
類中定義的函數print_data
。
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__________");
}
}
執行上面示例代碼,得到以下結果 -
__________Printing to Console__________
實現多個介面
一個類可以實現多個介面,介面名稱之間用逗號分隔。下麵給出了相同的語法 -
class identifier implements interface-1,interface_2,interface_4…….
以下示例顯示如何在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;
}
}
執行上面示例代碼,得到以下結果 -
The gross total: 1000
Discount:50