java请求接口示例

为了支持Java 8中的lambda表达式,他们引入了Functional Interfaces。

具有单一抽象方法的接口可以称为功能接口。

Runnable,Comparator,Cloneable是功能接口的一些示例。 我们可以使用Lambda表达式实现这些功能接口。

例如:

Thread t =new Thread(new Runnable(){public void run(){System.out.println("Runnable implemented by using Lambda Expression");}
});

这是创建线程的旧方法。

由于Runnable具有单一抽象方法,我们可以将其视为功能接口,并且可以使用如下所示的Lambda表达式。

Thread t = new Thread(()->{System.out.println("Runnable implemented by using Lambda Expression");
});

在这里,我们没有传递Runnable对象,而是传递了lambda表达式。

声明我们自己的功能接口:

我们可以通过限定了S个英格尔一个 bstract M在接口ethod宣布我们自己的功能界面。

public interface FunctionalInterfaceTest{
void display();
}
//Test class to implement above interface
public class FunctionInterfaceTestImpl {public static void main(String[] args){//Old way using anonymous inner classFunctionalInterfaceTest fit = new FunctionalInterfaceTest(){public void display(){System.out.println("Display from old way");}};fit.display();//outputs: Display from old way//Using lambda expressionFunctionalInterfaceTest newWay = () -> {System.out.println("Display from new Lambda Expression");}newWay.display();//outputs : Display from new Lambda Expression}
}

我们可以使用@FunctionalInterface批注进行批注,以告知编译时错误。 它是可选的

例如:

@FunctionalInterface
public interface FunctionalInterfaceTest{void display();void anotherDisplay();//shows an error, FunctionalInterface should have only one abstarct method.
}

默认方法:

功能接口不能具有多个抽象方法,但是可以具有多个默认方法。

Java 8中引入了默认方法,以添加新方法进行接口,而不会干扰已实现的类。

interface DefaultInterfaceTest{void show();default void display(){System.out.println("Default method from interface can have body..!");}
}
public class DefaultInterfaceTestImpl implements DefaultInterfaceTest{public void show(){System.out.println("show method");}//we dont need to provide any implementation to default method.public static void main(String[] args){DefaultInterfaceTest obj = new DefaultInterfaceTestImpl();obj.show();//out puts: show methodobj.display();//outputs : Default method from interface can have body..!}
}

默认方法的主要用途是不强制实现类,我们可以向接口添加方法。

多重继承:

如果两个接口中存在相同的默认方法,并且一个类正在实现该接口,则它将引发错误。

//Normal interface with show methodinterface Test{default void show(){System.out.println("show from Test");}}//Another interface with same show methodinterface AnotherTest{default void show(){System.out.println("show from Test");}}//Main class to implement above two interfacesclass Main implements Test, AnotherTest{
//here is an ambiguity which show method has to inherit here
}

此类不会编译,因为Test和AnotherTest接口show()方法之间存在歧义,要解决此问题,我们需要将Show()方法覆盖到Main Class。

class Main implements Test, AnotherTest{void show(){System.out.println("Main show method");}}

翻译自: https://www.javacodegeeks.com/2014/05/java-8-functional-interface-example.html

java请求接口示例

java请求接口示例_Java 8:功能接口示例相关推荐

  1. java组合与继承始示例_Java 9功能与示例

    java组合与继承始示例 Java 9 is a major release and it has brought us a lot of features for developers. In th ...

  2. java组合与继承始示例_Java 8特性与示例

    java组合与继承始示例 Java 8 was released on 18th March 2014, so it's high time to look into Java 8 Features. ...

  3. java支持接口吗_java – 支持专用接口方法

    此支持允许接口的非抽象方法在它们之间共享代码.私有方法可以是静态的或实例的. 接口的私有方法可以是抽象的还是默认的? 我可以问一个例子,"私有静态接口方法"在代码方面是否有用? 解 ...

  4. java枚举类型原理_Java枚举类接口实例原理解析

    这篇文章主要介绍了Java枚举类接口实例原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 枚举类可以实现一个或多个接口.与普通类实现接口完全一 ...

  5. java 接口对象_Java面向对象之接口——interface

    Java面向对象之接口--interface 什么是接口 一般计算机中的接口分为硬件接口和软件接口. 硬件接口:是指两个硬件设备之间的连接方式,既包括物理上的接口,还包括逻辑上的数据传送协议. 软件接 ...

  6. java接口常用_java的常用接口

    Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements). 所有实现Collection接口的类 ...

  7. java 子类必须实现_Java学习之接口的子类必须实现接口的全部方法吗?

    接口的子类必须实现接口的全部方法吗? 接口的子类必须实现接口中全部的方法吗?答案:不是.原因如下: 如果子类是非抽象类,则必须实现接口中的所有方法: 如果子类是抽象类,则可以不实现接口中的所有方法,因 ...

  8. java 接口重写_java如何实现接口中的重写

    普通类implements接口 1.普通方法,抽象方法都得重写: 2.默认方法可重写,也可不重写. 抽象类implements接口 在线视频教程分享:java教学视频 由抽象类来实现接口,则不必重写接 ...

  9. Java抽象类和接口使用_Java 抽象类和接口

    一.抽象类 1.定义 抽象类指提供方法,但是未提供方法体(实现方法)的类,抽象类用来被子类继承,子类通过方法的重写实现抽象方法. 注:1)抽象类中不一定包含抽象类,它可能只是abstract修饰的类: ...

  10. java 内部类声明 抽象类_Java 抽象类、接口、内部类

    抽象类 当编写一个类时,常常会为该类定义一些方法,这些方法用以描述该类的行为方式,那么这些方法都有具体的方法体.但在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确地知道这些子类如何实 ...

最新文章

  1. unity3d v5.1.1 ugui 带垂直滚动条的文本框
  2. codeforces gym-101745 D-Stamp Stamp Stamp动态规划
  3. Extjs中三种不同的数据提交方式
  4. 软考网络管理员学习笔记7之第七章网络管理技术
  5. vue 项目中当访问路由不存在的时候默认访问404页面
  6. 微信小程序和百度的语音识别接口详解
  7. 如何在无显示器的ubuntu下跑前端测试
  8. Oracle 10g宝典(第2版)
  9. 对于机器学习而言如何翻越测试集
  10. 【16年浙江省赛H ZOJ 3965】Binary Tree Restoring 【两个dfs序还原】
  11. 快速突破面试算法之数组与矩阵篇
  12. 深信服环境SCSA环境遇到的问题(无法访问网站)
  13. matlab中除法的错误使用
  14. 【电脑运用及修理】6套台式组装机电脑配置清单大全(2022年618)
  15. 教你用冰点还原批量处理文件
  16. 【数据结构与算法】之深入解析“滑动谜题”的求解思路与算法示例
  17. 婚纱预订小程序开发,商家线上展示平台
  18. STM32 GPIOx_CRL/GPIOx_CRH 寄存器的设置的简化描述
  19. python爬虫天猫商品数据及分析(2)
  20. 近期1年来PHP面试题整理

热门文章

  1. 【2018.3.31】模拟赛之四-ssl2408 句子【dp,字符串】
  2. 【双指针】Square Pasture G(P7153)
  3. 【SPFA】最优贸易(luogu 1073)
  4. 【最短路】【Dijkstra】【图论】最小花费(jzoj 2125)
  5. Maven的pom.xml文件详解------Build Settings
  6. Hadoop入门(十二)Intellij IDEA远程向hadoop集群提交mapreduce作业
  7. 漫画:如何用栈实现队列
  8. 机器学习中向量化编程总结记录
  9. (归并排序 快排 堆)
  10. 虚拟机安装CentOS-7-x86_64-DVD-1708说明