Java

Java8对接口的升级

2019-09-16  本文已影响0人  TZX_0710
在JDK 1.7及更老的版本中,接口中只能包含常量与抽象方法两种内容,
不允许包含其他。但是这种情况在JDK 1.8中已经改变:接口中允许包含default方法和static方法并指定方法体的具体实现
我们可以采用接口去实现多态性质
@FunctionalInterface
public interface Phone {

    //拨打电话
    void call();
}

public class IPhone implements Phone
{
    @Override
    public void call() {
        System.out.println("FACE TIME");
    }
}

public class Gralxy implements  Phone {

    @Override
    public void call() {
        System.out.println("call me");
    }
}
public class ExampleTest {
    public static void main(String[] args) {
      usePhone(new IPhone() );
      usePhone( new Gralxy());
    }


    private static void  usePhone(Phone phone){
        try {
            phone.call();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

接口升级 给每一个iphone再增加一个视频的功能

1.传统方法 在Phone接口中增加一个视频方法 然后实现类再去实现
2.采用Java8方式 Java8中允许接口中存在默认方法 即default修饰的方法
或者静态方法

@FunctionalInterface
public interface Phone {

    //拨打电话
    void call();

    static void video(){
        System.out.println("视频聊天");
    }
}

总结:Java8的默认方法为我们在某些特定场景 解决了很多方法

上一篇 下一篇

猜你喜欢

热点阅读