函数式接口:只有一个抽象方法的接口。

函数式接口的特点:

  1. 函数式接口有且只有一个抽象方法。
  2. 函数式接口中可以有default方法和static方法(jdk8新增)、private方法和private static方法(jdk9新增)。
  3. 如果在接口上添加注解@FunctionalInterface,编译时会检查是否仅有一个抽象方法。
  4. 如果接口中抽象方法覆盖了java.lang.Object类里面的public方法,那么该方法不算抽象方法(不在@FunctionalInterface校验中)

1.函数式接口有且只有一个抽象方法。

InterfaceTest.javapublic interface InterfaceTest {//有且只有一个抽象方法public abstract void abstractTest();}

2.函数式接口中可以有default方法和static方法、private方法和private static方法。

public interface InterfaceTest {//有且只有一个抽象方法public abstract void abstractTest();public default void defaultTest(String name){System.out.println("defaultTest:"+name);}public static void staticTest(){System.out.println("staticTest: ....");} private void privateTest(){ //TODO } private static void privateStaticTest(){ //TODO }}
  • 3.@FunctionalInterface验证InterfaceTest.java是否是函数式接口:

//注解@FunctionalInterface:使用该注解来定义接口,

//编译器将会强制检查该接口是否确实有且仅有一个抽象方法,否则将会报错.

@FunctionalInterfacepublic interface InterfaceTest {public abstract void abstractTest();public default void defaultTest(String name){System.out.println("defaultTest:"+name);}public static void staticTest(){System.out.println("staticTest: ....");}}

存在多个抽象方法的时候,注解报错

  • 4.抽象方法覆盖了java.lang.Object类里面的public方法
@FunctionalInterfacepublic interface InterfaceTest {public abstract void abstractTest();public default void defaultTest(String name){System.out.println("defaultTest:"+name);}public static void staticTest(){System.out.println("staticTest: ....");}public abstract String toString();}

抽象方法覆盖了java.lang.Object类里面的public方法,不算抽象方法

夜深人静,你是否也在窗头遥望?勤劳的人永远不会被忘记,这是朋友告诉我的一句话,一直鼓励着我:不忘初心,砥砺前行。

有有我之境,有无我之境。“泪眼问花花不语,乱红飞过秋千去”,“可堪孤馆闭春寒,杜鹃声里斜阳暮”,有我之境也。“采菊东篱下,悠然见南山”,“寒波澹澹起,白鸟悠悠下”,无我之境也。有我之境,以我观物,故物皆著我之色彩。无我之境,以物观物,故不知何者为我,何者为物。古人为词,写有我之境者为多。然未始不能写无我之境,此在豪杰之士能自树立耳。——王国维

java 接口的声明和实现 总结_java知识总结(三):函数式接口相关推荐

  1. java function void_Java8中你可能不知道的一些地方之函数式接口实战

    什么时候可以使用 Lambda?通常 Lambda 表达式是用在函数式接口上使用的.从 Java8 开始引入了函数式接口,其说明比较简单:函数式接口(Functional Interface)就是一个 ...

  2. java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function

    文章目录 函数式接口 概念 函数式接口作为方法参数 函数式接口作为方法的返回值 常用函数式接口 Supplier接口 常用函数式接口 Consumer 函数式接口之 Predicate接口 常用接口之 ...

  3. java compare 返回值_关于Java你不知道的那些事之Java8新特性[Lambda表达式和函数式接口]...

    前言 为什么要用Lambda表达式? Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,将代码像数据一样传递,这样可以写出更简洁.更灵活的代码,作为一个更紧凑的代码风 ...

  4. 实现了某一个接口的匿名类的例子_java中的内部类内部接口详解,一文搞定

    简介 一般来说,我们创建类和接口的时候都是一个类一个文件,一个接口一个文件,但有时候为了方便或者某些特殊的原因,java并不介意在一个文件中写多个类和多个接口,这就有了我们今天要讲的内部类和内部接口. ...

  5. jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式

    1.单例设计模式 1.概念: 设计模式:使用固有的流程或方式设计出来的类接口.枚举等元素 2.设计原则: 1.私有化构造方法[private.protected] 2.类中创建最终对象[唯一不能被赋值 ...

  6. 未公开接口主要指以下哪几类_Java8的 Stream 函数式接口,你了解多少?

    点击蓝色"程序职场"关注我哟 加个"星标",天天和你一起进步 作者:litesky www.jianshu.com/p/2338cabc59e1 函数式接口是伴 ...

  7. java中如何声明外键约束_java – 如何使用Hibernate注释标记外键约束...

    我正在尝试使用Hibernate注释为我的数据库表编写模型类. 我有两个表,每个表都有一个主键User和Question. @Entity @Table(name="USER") ...

  8. java制作玩游戏并支付游戏币_java 学习第三天小练习

    今天做的是一些流程控制题,if...else,for循环等. 1.给定一个成绩,如果成绩大于80,则输出"奖励".判断完后不管条件成不成立都要输出"继续努力". ...

  9. java创建线程池几种方式_java知识总结-创建线程池的6种方式

    一.创建线程池的6种方式: Executors.newCachedThreadPool(); 创建一个可缓存线程池,应用中存在的线程数可以无限大 Executors.newFixedThreadPoo ...

最新文章

  1. php BC高精确度函数库
  2. [20150518]关于块转储问题2.txt
  3. s-palindrome
  4. C++/CLI C#字符串转为C++字符串正确写法
  5. C++通过CMD修改电脑IP地址
  6. SVN版本控制—branches、trunk、tag篇
  7. 【一文学Linux系统基础操作】
  8. 初生牛犊不怕虎之HTML初辨
  9. 数据分析入门系列教程-SVM实战
  10. 第三方支付机构有哪些?他们的资金是如何运作保障用户的资金安全的?
  11. RealView® 编译工具 汇编器指南
  12. python中什么的布尔值不是false_不是python中的布尔值
  13. 利用Windows 计划任务定时将本地文件复制到共享文件夹
  14. maven 依赖com.google.code.kaptcha
  15. 导航系统中的惯性技术
  16. 修复VMware网络连接失败及设置固定IP
  17. matlab 脉冲密度调制,脉冲压缩技术研究指导.doc
  18. 初学者都能看懂的 Spring 源码之依赖注入(DI)源码分析
  19. “应用程序配置不正确,程序无法启动”详细举例(vc2008 sp1)
  20. 新中大SE(ngpower)记帐

热门文章

  1. exif_imagetype() 函数在linux下的php中不存在
  2. [数据结构与算法]RED-BLACK(红黑)树的实现TreeMap源码阅读
  3. 运维堡垒机(跳板机)系统 python
  4. (0,eval)('this')与eval的区别
  5. WPF 学习笔记 路由事件
  6. 博客园的祥和需要大家共同努力
  7. postgreSQL源码分析综述
  8. 对于局部变量_LabVIEW小白入门——局部变量
  9. java中子类怎样调用父类的属性_java的继承、重载(overload)、覆盖(override)的总结...
  10. 网络拓扑图画图工具_一款功能强大的免费在线作图工具