二、jdk1.8新特性接口

前言:

  在我们刚开始学习java的时候,我们都学过接口的定义,在java中接口只能存在抽象方法和常量,而不能出现方法的实现,而这一规定则在JDK1.8引入的新特新中被打破,下面我们来看一下在最新的JDK版本总对接口做了哪些更新。

一、default方法:

  接口在JDK1.8引入的新特新,出现了default关键字修饰的方法,由defultf修饰的方法可以有自己的实现。

  具体实现场景:例如我们定义了一个接口同时有很多个类实现了这个接口,但这些个类中却存在一些公共的方法,这时候我们就可以用default关键字将这些公共方法抽出了到接口中,具体看一下实现代码;

public interface MyInterface {

    void run();

    default void test(){
        System.out.println("MyInterface接口中的test方法");
    }
}
View Code
public class MyInterfaceA implements  MyInterface{
    @Override
    public void run() {
        System.out.println("MyInterfaceA类实现run放大");
    }
}
View Code
public class MyInterfaceB implements  MyInterface{

    @Override
    public void run() {
        System.out.println("MyInterfaceB类实现run放大");
    }
}
View Code
public class test1 {

    public static void main(String[] args){

        MyInterface a = new MyInterfaceA();
        MyInterface b = new MyInterfaceA();

        a.test();
        b.test();
    }
}
View Code

二、static方法:

  JDK1.8中接口中可以出现static方法,根据我们之前所学知识知道static变量和方法是属于类本身的,我们在调用的时候是不需要new一个对象出来的,而在接口中也是同样的,接口中出现的static方法也是属于这接口本身。

  具体实现场景:static方法可以实现接口的屏蔽,让我们不用在关心实现类的,只用操作接口从而实现了代码的解耦,

public interface MyInterface {

    void run();

    static MyInterfaceA getObject(){
        return new MyInterfaceA();
    }
}
View Code

  测试代码

public class test1 {

    public static void main(String[] args){

        MyInterface a = MyInterface.getObject();
        a.run();
    }
}
View Code

二、private方法:

  JDK1.9中接口中可以出现private方法,而private方法的出现主要是用于优化代码,减少代码的重复新和重新利用效,例如在接口中我们定义了多个default方法,而这些个default存在多行重复性的代码时,我们需要将这些行代码抽出来,而且不希望外部调用这看到这些抽出来的方法是,我们则可以使用private关键字

 

posted @ 2019-08-28 16:28  は問わない  阅读(563)  评论(0编辑  收藏  举报