Java8:接口新特性
来源:互联网 发布:火狐浏览器mac版 编辑:程序博客网 时间:2024/06/05 14:31
Java8新增了接口的默认方法和类方法:
以前,接口里的方法要求全部是抽象方法或者常量,java8以后允许在接口里定义默认方法和类方法:
不同的是:
默认方法可以通过实现接口的类实例化的对象来调用,而类方法只能在本接口中调用或在实现类中实现:
下面是使用实例:
@FunctionalInterfacepublic interface MyInterface { // 抽象方法 public String sub(String ss); //常量 String CL="常量"; // java.lang.Object中的方法不是抽象方法 public boolean equals(Object var1); // default不是抽象方法 public default void defaultMethod(){ System.out.println("执行默认方法,调用类方法"); staticMethod(); } // static不是抽象方法 public static void staticMethod(){ System.out.println("执行类方法"); }}
public class MyInter implements MyInterface{ @Override public String sub(String ss) { System.out.println("执行被实现的方法"+ss); return ss; } public static void doSomeThing(){ System.out.println("做啥"); }}
public class TestInterface { public static void main(String[] args) { MyInterface myInterface=(ss)-> { System.out.println("lambda-匿名内部类实现接口抽象方法生成接口实例"); return ss; }; System.out.println(myInterface.sub("lambda实现接口")); System.out.println("------>>>>>"); MyInter myInter = new MyInter(); System.out.println(myInter.sub("实现接口")); System.out.println("------>>>>>"); myInter.defaultMethod(); ////myInter.doSomeThing myInter.staticMethod 都是不可以的,因为静态方法是类方法,不能通过实例调用,只能通过类调用或者类里的其他可调用方法调用 }}
运行结果:
lambda-匿名内部类实现接口抽象方法生成接口实例lambda实现接口------>>>>>执行被实现的方法实现接口实现接口------>>>>>执行默认方法,调用类方法执行类方法Process finished with exit code 0
注:静态方法和常量只能通过类调用,具体的看JVM。
0 0
- Java8:接口新特性
- 【java8新特性】关于接口
- java8新特性之接口定义增强
- Java8新特性 - 默认接口方法
- Java8之Interface接口新特性
- Java8新特性 - 默认接口方法
- java8新特性-接口定义增强
- Java8新特性函数式接口
- java8新特性之一:接口的增强
- Java8 新特性 函数式接口
- java8新特性-接口定义增强
- Java8 新特性 接口中的default方法
- Java8新特性 接口默认方法,接口静态方法
- Java8新特性——流接口Streams
- 【Java8新特性】Java 8 接口之 default method
- Java8新特性 第11课-DoubleStream接口
- java8新特性 (λ、stream 与 默认接口方法)
- Java8新特性小结-接口与Lambda表达式
- spring学习笔记(六)
- robocode学习系列(一)--基础内容
- 代理模式 原型模式
- 取数字
- 汇编程序:查表法找ASCII
- Java8:接口新特性
- 压力传感器电路
- POJ 3984 迷宫问题(dfs)
- Java基础--运算符
- 经典手眼标定算法之Tsai-Lenz的OpenCV实现
- 使用逻辑分析进行UART通信协议分析
- jsonp
- utf8_general_ci与utf8_unicode_ci的比较
- linux FAQ