zoukankan      html  css  js  c++  java
  • Java——接口

    一、介绍

    • 接口是Java语言中的一种引用类型(其他的引用类型有数组、类、String、集合...)
    • 接口,和类属于同一级别
    • 接口,可以理解为是方法的集合体(接口中通常就是用来定义方法的)
    • 接口中封装的就是抽象方法(JDK1.7之前)
    • 从JDK1.8开始,接口中增加了:静态方法、默认方法
    • 从JDK1.9开始,接口中增加了:私有方法
    • 接口,不能实例化(不能创建对象)[接口中没有构造方法]

    二、接口的定义

    使用关键字interface关键字来定义接口

    格式为: interface 接口名{...}

    public interface Test {
        // 接口中的成员
    }
    

    三、接口中的成员

    JDK1.8之前只能定义静态常量和抽象方法

    public interface Test {
        // 静态常量
        public static final int NUMBER = 100;   // 常量名通常全大写
        
        // 抽象方法
        public abstract void method();
    }
    

    JDK1.8添加了静态方法、默认方法

    // 接口的命名方式:大驼峰
    public interface Test {
        // 静态常量
        // ...
    
        // 抽象方法
        //...
    
        //默认方法
        public default int addNum(int n){
            return n + 1;
        }
    
        // 静态方法
        public static void method(){
            
        }
    }
    

    JDK1.9添加了私有方法

    // 接口的命名方式:大驼峰
    public interface Test {
        // 静态常量
        // ...
    
        // 抽象方法
        // ...
    
        //默认方法
        // ...
    
        // 静态方法
        // ...
        
        //私有方法
        private boolean isOpen(){
            return false;
        }
    }
    

    小结一下,接口中可以书写的内容

    1. 静态常量
    2. 抽象方法
    3. 静态方法
    4. 默认方法
    5. 私有方法

    四、接口的基本使用

    在Java语言中接口不能实例化,需要定义一个子类来实现(继承)接口,通过实例化子类对象,来访问接口的成员。

    子类实现接口,使用关键字:implements

    在子类实现接口之后,必须对接口中的抽象方法进行重写

    举例如下

    // Hello.java 定义接口
    public interface Hello {
        // 静态常量
        public static final int NUMBER = 100;
    
        // 抽象方法
        public abstract void method(int num);
    }
    
    // Child.java 子类实现接口
    public class Child implements Hello {
        // 重写抽象方法
        @Override
        public void method(int num){
            // 方法体代码
            System.out.println(num);
        }
    }
    
    // Test.java 测试类调用方法
    public class Test {
        public static void main(String[] args) {
            // 实例化子类对象
            Child child = new Child();   // 使用对象本身类型来定义
            child.method(100);   // 调用重写后的方法 打印100
    
            // 多态的体现
            Hello h = new Child();   // 使用对象的父类型来定义
            h.method(200);   // 调用重写后的方法 打印200
        }
    }
    

    调用接口中默认方法的例子如下

    // Hello.java
    public interface Hello {
        // 默认方法
        public default void show(){
            System.out.println("我是接口中的默认方法");
        }
    }
    
    // Child.java 子类实现接口
    public class Child implements Hello {
        
    }
    
    // Test.java
    public class Test {
        public static void main(String[] args) {
            Child child = new Child();
            child.show();   // 我是接口中的默认方法
        }
    }
    

    获取接口中常量的例子如下

    // Hello.java
    public interface Hello {
        // 静态常量
        public static final String CITY = "合肥";
    }
    
    // Test.java
    public class Test {
        public static void main(String[] args) {
            Child child = new Child();
            System.out.println(Hello.CITY);   // 合肥
        }
    }
    

      

  • 相关阅读:
    phone 接口实现
    linux 下查找文件或者内容常有命令【转】
    【转】线程问题引起的内存泄露
    Canvas的save和restore 之二
    getIdentifer()函数的用法
    canvas.clipRect
    blob
    Android中Context
    canvas中的save用法之一
    sharedPreferences
  • 原文地址:https://www.cnblogs.com/xulinjun/p/14759558.html
Copyright © 2011-2022 走看看