JDK1.8的接口新特性

JDK7及其之前1、接口的变量都是public final static 全局静态常量,无变化。2、接口中都是抽象abstract方法,不能有static方法(因为abstract和static、final、private不能共存)JDK1.8及其之后1、接口中可以添加抽象方法(static),实现类不能重写,只能通过接口名调用。2、如果子类中定义了相同名字的静态方法,那就是完全不同的方法了,直接从属于子类。可以通过
变量名直接调用。3、接口中可以添加非抽象方法(default),实现列可以重写,只能通过对象名来调用4、实现类可以直接使用default方法,可以重写default,但是必须去掉default。5、上级接口中default方法的调用:MyInterface.super.method2()提供非抽象方法的目的1、为了解决实现该接口的子类代码重复问题2、为了既有的的成千上万的Java类库增加的新功能,且不必对这些类重新进行设计。
public interface MyInterface {public static final double PI = 3.14;public abstract void method1();public static void method2(){System.out.println("JDK1.8中的非抽象方法有两种,一种是static的");}public default void method3(){System.out.println("JDK1.8中的非抽象方法有两种,一种是default的");}public static void main(String[] args) {MyInterface.method2();}
}
public class MyClass implements MyInterface{@Overridepublic void method1() {System.out.println("接口中的抽象方法,子类必须实现");}@Overridepublic void method3() {MyInterface.method2();MyInterface.super.method3();System.out.println("重写接口中default方法,须将default去掉");}public static void main(String[] args) {MyInterface mi = new MyClass();mi.method1();MyInterface.method2();mi.method3();}
}

运行代码如下:

JDK1.8的接口新特性相关推荐

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

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

  2. jdk8 接口新特性

    jdk8 接口新特性 概述: jdk8之前接口是规则的集合体,方法只有抽象方法. jdk8版本开始不光光有抽象方法同时增加了实体方法. 新加实体方法: 默认方法 静态方法 默认方法 概述: ​ 被关键 ...

  3. 【JavaSE】JDK新特性(二)————接口新特性,函数式接口(Suppier,Comsumer,Predicate,Function)

    文章目录 1.接口新特性 1.1 接口组成更新概述 1.2 接口中的默认方法 1.3 接口中的静态方法 1.4 接口中的私有方法 2. 函数式接口 2.1 函数式接口概述 2.2 函数式接口作为方法的 ...

  4. Java 接口 新特性(Java8)

    Java8新特性之接口增强 在Java7以及以前的版本中,接口里的方法都是抽象的,并且不存在静态方法,属性默认修饰符是public static final.所有方法的声明都是public [返回类型 ...

  5. 总结:JDK1.5-JDK1.8各个新特性

    2019独角兽企业重金招聘Python工程师标准>>> JDK各个版本的新特性 以下介绍一下JDK1.5版本到JDK1.7版本的特性及JDK1.8主要部分特性.仅供参考. JDK1. ...

  6. jdk1.7 1.8新特性

    本文是我学习了解了jdk7和jdk8的一些新特性的一些资料,有兴趣的大家可以浏览下下面的内容. 官方文档:http://www.oracle.com/technetwork/java/javase/j ...

  7. JDK1.8 十大新特性详解

    友情提示:本文将用带注释的简单代码来描述新特性,文字少,但是代码较多 接口的默认方法 Java8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示 ...

  8. jdk1.5之后的新特性之可变参数

    Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理. 注意:可变参数必须位于最后一项.当可变参数个数多余一个时,必将有一个不是最后一项,所以只支 ...

  9. 菜鸟记录之JDK1.8十大新特性

    一.接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: 代码如下: interface Formula {   ...

最新文章

  1. 云端卫士架构师讲DDoS攻击的智能防御之道
  2. 谷歌、苹果等大佬亲自戳穿自动驾驶完美童话,技术、场景、安全牢笼实难突围!...
  3. 【发现】Warcraft III v1.22 不用正版CDKey上Battle.net 续篇
  4. 【Verilog HDL 训练】第 04 天(竞争、冒险、译码等)
  5. 支持 简体,繁体,英文的js日历控件
  6. swagger ui 值类型形参加文字注释
  7. 语音识别行业成长红利期已过,行业寡头显现,小公司生存状况堪忧
  8. 减小编译bin文件大小_两个奇技淫巧,将 Docker 镜像体积减小 99%
  9. vs2017安装qt
  10. 【FPGA】基于VGA的图像显示
  11. 达梦数据库的简单使用
  12. powerdesigner将name填充到comment中
  13. php怎么添加文字,怎么在视频里加文字 在视频中添加文字
  14. ESlint配置大全
  15. Agent 监控配置说明
  16. UVM中 sequence中的starting_phase
  17. ApacheCN 计算机视觉译文集 20210218 更新
  18. FTP客户端设计与实现
  19. 如何建立网站登录系统?
  20. 林氏物语.朝花夕拾之恨逢卿晚

热门文章

  1. java通过POI技术将html转成word
  2. tf.contrib在tf2中无法使用
  3. Android多线程优劣,Android 开发中用到的几个多线程解析
  4. python日期迭代_计算敏捷项目中迭代时间安排(Python3版)
  5. 如何禁用、隐藏、显示Windows11上的小部件菜单
  6. linux 上下文切换监控,[Linux] 查看进程的上下文切换pidstat
  7. MySQL中 JSON 数据类型应用
  8. Shiro——RememberMe
  9. vue3.0中使用Element-plus默认英文组件修改为中文
  10. java 雅思_基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)