前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

jdk8和9都对接口进行了新的更新,还是不错的

Java8开始,

1、接口中,允许定义default默认方法(可以有多个)

public default (public可以省略,default不可以省略)

2、接口中允许定义静态方法 ,静态方法的修饰符

public static (public可以省略,static不可以省略)

Java 9开始,支持再接口中定义私有方法

提供给接口中使用) 提供给其他有公共部分进行私有化操作

private void method 不可省略

接口静态方法在java9中的使用,比如利用Map.of等方法

private static void method 都不可省略

1、接口

package com.hlj.java8.Interface.Demo03InterfaceDefaultPack;

/**
 * Java8开始,
 * 1、接口中,允许定义default默认方法 public default (public 可以省略,default不可以省略)
 * 2、接口中允许定义静态风阀 ,静态方法的修饰符:public static (public可以省略,static不可以省略)
 *
 * Java 9开始,支持再接口中定义私有方法
 * 接口静态方法在java9中的使用,比如利用Map.of等方法
 * private  void method (提供给接口中使用) 提供给其他有公共部分进行私有化操作
 * private static void  method 都不可省略
 */
public interface MyInterface {

    void method1();

    void method2();


    /**
     * 1、默认的方法修饰符,public default (public 可以省略,default不可以省略)
     *
     * 默认方法可以有方法体实现 :具体实现
     * 作用:
     * 1、新加一个功能,不会影响其他已经使用这个接口的其他功能。接口升级的时候,用到,同事子类也可以实现覆盖重写
     */
    public default  void methodNew(){
        System.out.println("interface  default 方法");
    }


    /**
     * 2、接口中允许定义静态风阀 ,静态方法的修饰符:public static (public可以省略,static不可以省略)
     */
    public static void methodStatic(){
        System.out.println("接口中的静态方法");
    }




}


1、测试

package com.hlj.java8.Interface;

import com.hlj.java8.Interface.Demo03InterfaceDefaultPack.MyInterface;
import com.hlj.java8.Interface.Demo03InterfaceDefaultPack.impl.MyInterfaceImpl;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @Desc:
 * @Author HealerJean
 * @Date 2018/9/14  上午11:48.
 */
public class Demo01 {

    @Test
    public void demo(){

        MyInterface myInterface = new MyInterfaceImpl() ;

        /**
         *  我们发现这个里面的默认方法,可以帮我们继承下去,我们也可以对这个方法进行覆盖重写
         */
        myInterface.methodNew();

        MyInterface.methodStatic();


    }
}


代码下载

ContactAuthor