zoukankan      html  css  js  c++  java
  • 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();
    
    
    }
  • 相关阅读:
    (57)C# frame4 调用frame2
    (56)C# 读取控制台程序
    (55)C# windows 消息
    (54) C# 调用 kernel32.dll
    (53)C# 工具
    C++ hello world
    postgresql时间处理
    ext中grid根据数据不同显示不同样式
    log4j入门
    敏感数据加密
  • 原文地址:https://www.cnblogs.com/loaderman/p/11026840.html
Copyright © 2011-2022 走看看