Dart接口

Posted loaderman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dart接口相关的知识,希望对你有一定的参考价值。

/*
和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();


 

以上是关于Dart接口的主要内容,如果未能解决你的问题,请参考以下文章

Dart接口

Dart语言的接口替代品

与另一个片段通信的片段接口

Dart中的接口

Flutter 接口签名MD5加密

Flutter/Dart - Dart中的抽象类 多态 和接口