/* 和Java同樣,dart也有接口,可是和Java仍是有區別的。 首先,dart的接口沒有interface關鍵字定義接口,而是普通類或抽象類均可以做爲接口被實現。 一樣使用implements關鍵字進行實現。 可是dart的接口有點奇怪,若是實現的類是普通類,會將普通類和抽象中的屬性的方法所有須要覆寫一遍。 而由於抽象類能夠定義抽象方法,普通類不能夠,因此通常若是要實現像Java接口那樣的方式,通常會使用抽象類。 建議使用抽象類定義接口。 */ /* 定義一個DB庫 支持 mysql mssql mongodb mysql mssql mongodb三個類裏面都有一樣的方法 */ abstract class Db{ //當作接口 接口:就是約定 、規範 String uri; //數據庫的連接地址 add(String data); save(); delete(); } class Mysql implements Db{ @override String uri; Mysql(this.uri); @override add(data) { // TODO: implement add print('這是mysql的add方法'+data); } @override delete() { // TODO: implement delete return null; } @override save() { // TODO: implement save return null; } remove(){ } } class MsSql implements Db{ @override String uri; @override add(String data) { print('這是mssql的add方法'+data); } @override delete() { // TODO: implement delete return null; } @override save() { // TODO: implement save return null; } } main() { Mysql mysql=new Mysql('xxxxxx'); mysql.add('1243214'); }
/* 和Java同樣,dart也有接口,可是和Java仍是有區別的。 首先,dart的接口沒有interface關鍵字定義接口,而是普通類或抽象類均可以做爲接口被實現。 一樣使用implements關鍵字進行實現。 可是dart的接口有點奇怪,若是實現的類是普通類,會將普通類和抽象中的屬性的方法所有須要覆寫一遍。 而由於抽象類能夠定義抽象方法,普通類不能夠,因此通常若是要實現像Java接口那樣的方式,通常會使用抽象類。 建議使用抽象類定義接口。 */ /* 定義一個DB庫 支持 mysql mssql mongodb mysql mssql mongodb三個類裏面都有一樣的方法 */ // import 'lib/Mysql.dart'; import 'lib/MsSql.dart'; main() { // Mysql mysql=new Mysql('xxxxxx'); // mysql.add('1243214'); MsSql mssql=new MsSql(); mssql.uri='127.0.0.1'; mssql.add('增長的數據'); }
import 'Db.dart'; class MsSql implements Db{ @override String uri; @override add(String data) { print('這是mssql的add方法'+data); } @override delete() { // TODO: implement delete return null; } @override save() { // TODO: implement save return null; } }
abstract class Db{ //當作接口 接口:就是約定 、規範 String uri; //數據庫的連接地址 add(String data); save(); delete(); }
/* Dart中一個類實現多個接口: */ abstract class A{ String name; printA(); } abstract class B{ printB(); } class C implements A,B{ @override String name; @override printA() { print('printA'); } @override printB() { // TODO: implement printB return null; } } void main(){ C c=new C(); c.printA(); }