zoukankan      html  css  js  c++  java
  • Android-Java-接口Interface

    接口Interface 与 抽象类不同:

      抽象类关注的是事物本质,例如:水果Fruit 属于抽象的,说去买水果 是模糊的概念 是抽象的概念 不具体,到底买什么水果不知道,而水果包含了 香蕉,橘子 很多很多;

      接口关注的是事物的能力,例如:电脑有USB接口,只要你的数据线满足USB接口规定的功能,你就可用使用,只要你的充电线满足了USB接口规定的功能,你就可用充电;


    接口有两大区域:

    领域一 全局常量,注意:在接口定义的所有变量都是全局常量,就算你不写 public static final ,在接口中会自动补齐 public static final,隐式的

    1.为什么说接口里面所有的变量都是常量呢,被final修饰?

    2.为什么说接口里面的所有变量都被static修饰,属于静态呢?

     

     

    3.为什么说接口里面的所有变量权限都是 public 呢?

    经过以上三个问题就明白,原来在接口里面定义的所有变量都是 -(全局常量) ,可以用类名.常量,项目中任何类都可以 类名.常量;

    在Android开发过程中,例如:给整个APP配置全局常量信息,可以向以下这样:

    定义APPConfig接口: 

    package android.java.oop19;
    
    public interface APPConfig {
    
        /**
         * 注意:在接口定义的所以变量 都是 public static final 全局常量
         * 就算你不写 public static final ,在接口中会自动补齐 public static final,隐式的
         */
    
        String CONFIG_1 = "Android-自定义控件";
    
        String CONFIG_2 = "Android-Service";
    
        public static final String CONFIG_3 = "Android-Activity";
    
        public static final String CONFIG_4 = "Android-Broadcast Receiver";
    
        int CONFIG_5 = 1000;
    
        boolean CONFIG_ISSTUDY = true;
    
        public static final double CONFIG_6 = 99999999.00;
    
        public static final float CONFIG_7 = 876734.00F;
    
        String CONFIG_8 = "Android-Content Provider";
    
        String CONFIG_9 = "Android-H5";
    }

    main测试方法: 

    package android.java.oop19;
    
    public class Demo {
    
        public static void main(String[] args) {
    
            System.out.println(APPConfig.CONFIG_1 + "
    "
                    + APPConfig.CONFIG_2 + "
    "
                    + APPConfig.CONFIG_3 + "
    "
                    + APPConfig.CONFIG_4 + "
    "
                    + APPConfig.CONFIG_5 + "
    "
                    + APPConfig.CONFIG_6 + "
    "
                    + APPConfig.CONFIG_7 + "
    "
                    + APPConfig.CONFIG_8 + "
    "
                    + APPConfig.CONFIG_9 + "
    "
                    + APPConfig.CONFIG_ISSTUDY + "
    "
            );
    
        }
    
    }

     

    执行结果:




    领域二-抽象方法:在接口中定义的所有方法,都是抽象方法,就算不写 public abstract ,接口中也会自动补齐 public abstract 隐式的;

    package android.java.oop19;
    
    public interface IUsb {
    
        /**
         * 不写 public abstract 也会自动补齐public abstract 
         */
        void usbInterface1();
    
        /**
         * 以上usbInterface1方法,相当于以下方法
         */
        public abstract void usbInterface1();
    
    }

    USB案例:

    定义IUsb接口:

    package android.java.oop19;
    
    public interface IUsb {
    
        /**
         * 第一个USB接口
         */
        public abstract void usbInterface1();
    
        /**
         * 第二个USB接口
         */
        public abstract void usbInterface2();
    
        /**
         * 第三个USB接口
         */
        void usbInterface3();
    
        /**
         * 第四个USB接口
         */
        void usbInterface4();
    
    
        // ....
    
    }

    定义IUsb接口的实现类 UsbImple:

    package android.java.oop19;
    
    public class UsbImple implements IUsb {
    
        /**
         * 第一个USB接口
         */
        @Override
        public void usbInterface1() {
            System.out.println("此接口正在给手机充电中....");
        }
    
        /**
         * 第二个USB接口
         */
        @Override
        public void usbInterface2() {
            System.out.println("此接口正在给移动硬盘传输资料中....");
        }
    
        /**
         * 第三个USB接口
         */
        @Override
        public void usbInterface3() {
            System.out.println("此接口正在给平板充电中....");
        }
    
        /**
         * 第四个USB接口
         */
        @Override
        public void usbInterface4() {
            System.out.println("此接口正在给无线网卡使用中....");
        }
    }

    main测试方法:

    package android.java.oop19;
    
    public class Demo {
    
        public static void main(String[] args) {
    
            IUsb iUsb = new UsbImple();
    
            iUsb.usbInterface1();
    
            iUsb.usbInterface2();
    
            iUsb.usbInterface3();
    
            iUsb.usbInterface4();
    
        }
    
    }

    执行结果:

  • 相关阅读:
    HDU 5791 Two (DP)
    POJ 1088 滑雪 (DPor记忆化搜索)
    LightOJ 1011
    POJ 1787 Charlie's Change (多重背包 带结果组成)
    HDU 5550 Game Rooms (ccpc2015 K)(dp)
    HDU 5542 The Battle of Chibi (ccpc 南阳 C)(DP 树状数组 离散化)
    HDU 5543 Pick The Sticks (01背包)
    HDU 5546 Ancient Go (ccpc2015南阳G)
    NB-IoT的DRX、eDRX、PSM三个模式 (转载,描述的简单易懂)
    MQTT 嵌入式端通讯协议解析(转)
  • 原文地址:https://www.cnblogs.com/android-deli/p/10353163.html
Copyright © 2011-2022 走看看