(二十一)Dart 中的接口使用

Dart 中的接口使用

一、Dart 接口的特点

Dart 中的接口与 Java 有所不同。在 Dart 中:

  • 没有 interface 关键字:Dart 中没有专门的 interface 关键字来定义接口,而是使用普通类或抽象类来作为接口。
  • 使用 implements 关键字:通过 implements 关键字来实现接口。
  • 实现普通类时需覆写所有方法和属性:如果实现的类是普通类,那么需要覆写普通类和抽象类中的所有属性和方法。
  • 建议使用抽象类定义接口:由于抽象类可以定义抽象方法,而普通类不能,因此一般建议使用抽象类来定义接口,类似于 Java 中的接口。

二、代码示例解析

(一)定义抽象类作为接口

abstract class Db{   //当做接口   接口:就是约定 、规范
    late String uri;      //数据库的链接地址
    add(String data);
    save();
    delete();
}
  • 这里定义了一个抽象类 Db,它包含一个延迟初始化的属性 uri 和三个抽象方法:add(String data)save()delete()
  • 抽象类 Db 起到了接口的作用,规定了实现它的类必须实现这些方法和属性。

(二)实现接口的类

1. Mysql 类
class Mysql implements Db{
  
  
  String uri;

  Mysql(this.uri);

  
  add(data) {
    // TODO: implement add
    print('这是mysql的add方法'+data);
  }

  
  delete() {
    // TODO: implement delete
    return null;
  }

  
  save() {
    // TODO: implement save
    return null;
  }
  remove(){
      
  }
}
  • Mysql 类实现了 Db 接口。
  • 它必须覆写 Db 中的所有属性和方法,包括 uriadd(String data)save()delete()
  • add(data) 方法中,输出了“这是mysql的add方法”加上传入的数据。
  • delete()save() 方法目前只是返回 null,可以根据实际需求实现具体的逻辑。
  • Mysql 类还额外定义了一个 remove() 方法,这是它自己的扩展方法,不属于 Db 接口。
2. MsSql 类
class MsSql implements Db{
  
  late String uri;
  
  add(String data) {
    print('这是mssql的add方法'+data);
  }

  
  delete() {
    // TODO: implement delete
    return null;
  }

  
  save() {
    // TODO: implement save
    return null;
  }
}
  • MsSql 类也实现了 Db 接口。
  • 它同样覆写了 Db 中的所有属性和方法。
  • add(String data) 方法中,输出了“这是mssql的add方法”加上传入的数据。
  • delete()save() 方法目前也是返回 null,等待具体实现。

(三)主函数中的使用

main() {

  Mysql mysql=new Mysql('xxxxxx');

  mysql.add('1243214');

}
  • main() 函数中,创建了一个 Mysql 类的对象 mysql,并传入了一个数据库链接地址 'xxxxxx'
  • 调用了 mysql.add('1243214'),输出了“这是mysql的add方法1243214”。

三、总结

通过这个例子,我们可以看到 Dart 中接口的使用方式。虽然 Dart 没有专门的 interface 关键字,但通过抽象类和 implements 关键字,可以实现类似 Java 中接口的功能。在实际开发中,建议使用抽象类来定义接口,这样可以更清晰地规定实现类需要遵循的规范。同时,实现类需要覆写接口中的所有属性和方法,确保接口的完整性和一致性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Double Point

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值