• java_day12_泛型和接口


    泛型方法和接口

    一,泛型

      1,声明泛型: 返回值前使用<>

      2,泛型方法和static没有任何关系

       例:  public static <T> T getLastOne(ArrayList<T> arrayList){

          if(arrayList.size() == 0){

            returen null;

          }

          T t = arrayList.get(arrayList.size()-1);

            return t;

         }

         Integer i = getLastOne(new ArrayList<>());//java内部会推测使用的类型,用起来很灵活

    二,接口

      1,定义接口:与定义类一样,不同的是把class关键字改为interface关键字

      2,接口中只能写常量和抽象方法

      3,定义常量时可以省略 public static final 关键字.

      4,定义抽象方法时可以省略 public abstract 关键字

      5,接口的实现:在类名后用implement关键字 和接口名

      6,抽象类中可以没有抽象方法,但是只有抽象类中能放抽象方法

    三,接口和抽象类的区别

      1,语法角度:

         1.1,抽象类本质上还是一个类,在使用时,抽象类中可以存在普通方法和成员变量,而接口是单独的类型在使用时只能存在静态常量和抽象方法

        1.2,接口中所有的方法可以不写abstract也是抽象方法而抽象类中的抽象方法,必须写abstract关键字

        1.3,抽象类必须被继承,才能够使用,而接口必须被实现才能使用,一个类只能继承一个类,但是可以实现多个接口

      2,含义角度:

        当我们使用抽象类的时候,通常表达一种"is a"的含义,即当前类和被继承之间存在着概念上的"父子关系";而使用接口的时候,通常想表达一种"like a"的含义,即只是确定当前类具有某种能力(具有某些方法),而没有概念上的"父子关系"

      3,使用角度:

        当一个类有确切的父子关系时,我们使用抽象类,否则使用接口(即不确定是否有确切的父子关系,我们会优先考虑接口,毕竟类只能继承一次);如果一个类中有实体方法,那么我们只能使用抽象类

    四,ArrayList和LinkedList

      1,ArrayList底层是使用数组来实现的

      2,LinkedList底层是用链表来实现的

      3,实际开发中如果读取数据比较频繁,而插入,删除不频繁时使用ArrayList

      4,如果插入,删除比较频繁,使用LinkedList

      

     

  • 相关阅读:
    [转]tensorflow提示:No module named ''tensorflow.python.eager"
    mac使用pip3安装tensorflow(不用conda)
    不限速、没广告的迅雷(旧版迅雷)
    python从国内镜像安装第三方库
    Jupyter 安装并配置工作路径[转]
    VS2013只显示会附加到进程,无法启动调试
    电脑磁盘空间占用高于文件夹大小
    Latex基础
    C#/.Net 部分缩写
    texstudio设置外部浏览器及右侧预览不能使用问题
  • 原文地址:https://www.cnblogs.com/memo-song/p/8809971.html
Copyright © 2020-2023  润新知