面向对象-接口

/**
 *    使用implements 关键字进行实现
 * 
 *    如果 实现的是普通类,会将普通类和抽象中的属性的方法全部需要 覆写一遍
 * 
 *    因为抽象类可以定义抽象方法,普通类不可以,所以一般如果需要实现向Java接口那样的方法,一般会使用抽象类
 * 
 *    建议使用抽象类定义接口
 *    
 * */

// 定义一个 DB库 支持 mysql mssql mongodb
//     mysql mssql mongodb   三个类里面都有同样的方法

abstract class Db {
  String uri;
  // 当做接口
  add(String data); // 抽象方法
  save();
  delete();
}

class Mysql implements Db {
  Mysql(this.uri);

  @override
  add(String data) {
    print('add Mysql' + data);
  }

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

  @override
  save() {
    // TODO: implement save
    return null;
  }

  @override
  String uri;
}

class MsSql implements Db {
  @override
  add(String data) {
    print('add MsSql' + data);
  }

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

  @override
  save() {
    // TODO: implement save
    return null;
  }

  @override
  String uri;
}

void main() {
  Mysql mysql = new Mysql('xxx');

  mysql.add('1234');
}
posted @ 2021-07-29 20:36  13522679763-任国强  阅读(27)  评论(0)    收藏  举报