java 接口的声明和实现 总结_java知识总结(三):函数式接口
函数式接口:只有一个抽象方法的接口。
函数式接口的特点:
- 函数式接口有且只有一个抽象方法。
- 函数式接口中可以有default方法和static方法(jdk8新增)、private方法和private static方法(jdk9新增)。
- 如果在接口上添加注解@FunctionalInterface,编译时会检查是否仅有一个抽象方法。
- 如果接口中抽象方法覆盖了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知识总结(三):函数式接口相关推荐
- java function void_Java8中你可能不知道的一些地方之函数式接口实战
什么时候可以使用 Lambda?通常 Lambda 表达式是用在函数式接口上使用的.从 Java8 开始引入了函数式接口,其说明比较简单:函数式接口(Functional Interface)就是一个 ...
- java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function
文章目录 函数式接口 概念 函数式接口作为方法参数 函数式接口作为方法的返回值 常用函数式接口 Supplier接口 常用函数式接口 Consumer 函数式接口之 Predicate接口 常用接口之 ...
- java compare 返回值_关于Java你不知道的那些事之Java8新特性[Lambda表达式和函数式接口]...
前言 为什么要用Lambda表达式? Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,将代码像数据一样传递,这样可以写出更简洁.更灵活的代码,作为一个更紧凑的代码风 ...
- 实现了某一个接口的匿名类的例子_java中的内部类内部接口详解,一文搞定
简介 一般来说,我们创建类和接口的时候都是一个类一个文件,一个接口一个文件,但有时候为了方便或者某些特殊的原因,java并不介意在一个文件中写多个类和多个接口,这就有了我们今天要讲的内部类和内部接口. ...
- jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式
1.单例设计模式 1.概念: 设计模式:使用固有的流程或方式设计出来的类接口.枚举等元素 2.设计原则: 1.私有化构造方法[private.protected] 2.类中创建最终对象[唯一不能被赋值 ...
- 未公开接口主要指以下哪几类_Java8的 Stream 函数式接口,你了解多少?
点击蓝色"程序职场"关注我哟 加个"星标",天天和你一起进步 作者:litesky www.jianshu.com/p/2338cabc59e1 函数式接口是伴 ...
- java中如何声明外键约束_java – 如何使用Hibernate注释标记外键约束...
我正在尝试使用Hibernate注释为我的数据库表编写模型类. 我有两个表,每个表都有一个主键User和Question. @Entity @Table(name="USER") ...
- java制作玩游戏并支付游戏币_java 学习第三天小练习
今天做的是一些流程控制题,if...else,for循环等. 1.给定一个成绩,如果成绩大于80,则输出"奖励".判断完后不管条件成不成立都要输出"继续努力". ...
- java创建线程池几种方式_java知识总结-创建线程池的6种方式
一.创建线程池的6种方式: Executors.newCachedThreadPool(); 创建一个可缓存线程池,应用中存在的线程数可以无限大 Executors.newFixedThreadPoo ...
最新文章
- php BC高精确度函数库
- [20150518]关于块转储问题2.txt
- s-palindrome
- C++/CLI C#字符串转为C++字符串正确写法
- C++通过CMD修改电脑IP地址
- SVN版本控制—branches、trunk、tag篇
- 【一文学Linux系统基础操作】
- 初生牛犊不怕虎之HTML初辨
- 数据分析入门系列教程-SVM实战
- 第三方支付机构有哪些?他们的资金是如何运作保障用户的资金安全的?
- RealView® 编译工具 汇编器指南
- python中什么的布尔值不是false_不是python中的布尔值
- 利用Windows 计划任务定时将本地文件复制到共享文件夹
- maven 依赖com.google.code.kaptcha
- 导航系统中的惯性技术
- 修复VMware网络连接失败及设置固定IP
- matlab 脉冲密度调制,脉冲压缩技术研究指导.doc
- 初学者都能看懂的 Spring 源码之依赖注入(DI)源码分析
- “应用程序配置不正确,程序无法启动”详细举例(vc2008 sp1)
- 新中大SE(ngpower)记帐
热门文章
- exif_imagetype() 函数在linux下的php中不存在
- [数据结构与算法]RED-BLACK(红黑)树的实现TreeMap源码阅读
- 运维堡垒机(跳板机)系统 python
- (0,eval)('this')与eval的区别
- WPF 学习笔记 路由事件
- 博客园的祥和需要大家共同努力
- postgreSQL源码分析综述
- 对于局部变量_LabVIEW小白入门——局部变量
- java中子类怎样调用父类的属性_java的继承、重载(overload)、覆盖(override)的总结...
- 网络拓扑图画图工具_一款功能强大的免费在线作图工具