java接口使用默认方法的讲解
1、接口中默认方法的格式:
public default返回值类型方法名(参数列表) { }
2、接口中默认方法的注意事项:
默认的方法不是抽象的方法,所以不重写。但是可以重写,重写的时候可以删除关键词。
public可以省略,default不能省略。
3、实例
1:定义一个接口MyInterface,里面有两个抽象方法:
void show1();
void show2();
2:定义接口的两个实现类:
MyInterface ImplOne
MyInterface ImplTwo
3:定义测试类:
MyInterfaceDemo
在主方法中,按照多态的方式创建对象并使用
知识点扩充:
什么是接口(接口概述)
既然要用接口首先要明确什么是接口,它能帮助我们实现什么哪些事儿。
接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。 比如如果你是汽车,则必须能跑;如果你是坏人,则必须欺负好人等。
接口是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。
接口是Java语言中的一种引用类型,是方法的"集合",所以接口的内部主要就是定义方法,包含常量,抽象方法(JDK 7及以前)。
到此这篇关于java接口使用默认方法的讲解的文章就介绍到这了,更多相关java接口如何使用默认方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Java接口默认方法带来的问题分析【二义性问题】
本文实例分析了Java接口默认方法带来的问题.分享给大家供大家参考,具体如下: 一 点睛 Java 8中,如果一个类实现两个或多个接口,即"变相"的多继承,但是若其中两个接口都包含一个名字相同的default方法,会出现二义性问题. 二 实战 1 代码 interface faceA //定义接口faceA { void someMethod( ); default public void DefaultMethod( )//定义接口中默认方法 { System.out.println
-
java接口使用默认方法的讲解
1.接口中默认方法的格式: public default返回值类型方法名(参数列表) { } 2.接口中默认方法的注意事项: 默认的方法不是抽象的方法,所以不重写.但是可以重写,重写的时候可以删除关键词. public可以省略,default不能省略. 3.实例 1:定义一个接口MyInterface,里面有两个抽象方法: void show1(); void show2(); 2:定义接口的两个实现类: MyInterface ImplOne MyInterface ImplTwo 3:定义测
-
Java8接口的默认方法
Java8接口的默认方法 什么是默认方法,为什么要有默认方法? 简单说,就是接口可以有实现方法,而且不需要实现类去实现其方法.只需在方法名前面加个default关键字即可. 为什么要有这个特性?首先,之前的接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是,当需要修改接口时候,需要修改全部实现该接口的类,目前的 java 8之前的集合框架没有foreach方法,通常能想到的解决办法是在JDK里给相关的接口添加新的方法及实现.然而,对于已经发布的版本,是没法在给接口添加新方法的同时不影响已有
-
Java8中新特性Optional、接口中默认方法和静态方法详解
前言 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性. Java 8是Java的一个重大版本,有人认为,虽然这些新特性领Java开发人员十分期待,但同时也需要花不少精力去学习.下面本文就给大家详细介绍了Java8中新特性Optional.接口中默认方法和静态方法的相关内容,话不多说了,来一起看看详细的介绍吧. Optional Optional 类(java.util.Optional) 是一个
-
一篇文章带你认识Java8接口的默认方法
前言 Java8是Oracle于2014年3月发布的一个重要版本,其API在现存的接口上引入了非常多的新方法. 例如,Java8的List接口新增了sort方法.在Java8之前,则每个实现了List接口的类必须定义sort方法的实现,或者从父类中继承它的实现.想象一下,如果List接口的继承体系非常庞杂,那么整个集合框架的维护量有多么大! 为此,在Java8中引入了一种新的机制:接口支持申明带实现的方法. 默认方法 前文提到了Java8中List接口新增了sort方法,其源码如下: publi
-
Java之String.format()方法案例讲解
前言: String.format()作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,这里根据查阅的资料做个学习笔记,整理成如下文章,供后续复习查阅. 一. format()方法的两种重载形式: 1. format(String format, Object ... args) 该方法使用指定的格式字符串和参数返回一个格式化的字符串,格式化后的新字符串使用本地默认的语言环境. 2. format(Local l, String format, Pbject ... args) 其中,
-
Java8接口之默认方法与静态方法详解
目录 前言 为什么选择默认方法? Java 8示例:接口中的默认方法 Java 8示例:接口中的静态方法 Java 8 - 抽象类与接口 总结 前言 在Java8之前,java中的接口只能有抽象方法.默认情况下,接口的所有方法都是公共和抽象的.Java8允许接口具有默认和静态方法.我们在接口中使用默认方法的原因是,允许开发人员向接口添加新方法,而不会影响实现这些接口的类. 为什么选择默认方法? 例如,如果A.B.C和D等几个类实现了一个接口XYZInterface,那么如果我们向XYZInter
-
解析Java中的默认方法
为什么有默认方法? Java 8 就要来临,尽管发布期限已经被推迟, 我们仍非常确信在它最终发布的时候会支持lambdas 表达式. 前面提到过,我们之前关于这个主题已经讨论了不少,不过,lambdas表达式并不是Java 8中唯一改变的游戏规则. 假设Java 8 已经发布并且包含了lambda.现在你打算用一下lambda,最明显的应用场景莫过于对collection的每一个元素应用lambda. List<?> list = - list.forEach(-); // 这就是lambda
-
Java接口名称冲突问题的讲解
对于方法重载的区分,主要通过下面三种方式: 1. 参数个数 2. 参数类型 3. 参数顺序(较少使用,维护困难) 至于方法的其他部分,如方法返回值类型.修饰符等,与方法重载则没有任何关系. Java编程时,假设存在两个接口,但接口中存在相同名称的方法,但是其仅返回值不同.如下: interface interfac1{ void method(); } interface interface2 { int method(); } interface interface3 extends inte
-
Java AtomicInteger类使用方法实例讲解
1.java.util.concurrent.atomic 的包里有AtomicBoolean, AtomicInteger,AtomicLong,AtomicLongArray, AtomicReference等原子类的类,主要用于在高并发环境下的高效程序处理,来帮助我们简化同步处理. 在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字.而AtomicInteger则通过一种线程安全的加减操作接口. 2.AtomicInteger
-
谨慎使用Java8的默认方法
默认方法给JVM的指令集增加了一个非常不错的新特性.使用了默认方法之后,如果库中的接口增加了新的方法,实现了这个接口的用户类能够自动获得这个方法的默认实现.一旦用户想更新他的实现类的话,只需覆盖一下这个默认方法就可以了,取而代之的是一个在特定场景下更有意义的实现.更棒的是,用户可以在重写的方法里面调用接口的默认实现来增加一些额外的功能. 目前为止一切都还不错.然而,给现有的Java接口增加默认方法可能会导致代码的不兼容.看个例子就很容易能明白了.假设有一个库,它需要用户实现它的一个接口作为输入:
随机推荐
- asp.net对URL含有中文参数的转换
- 使用FTP下载目录,即FTP命令批量自动下载的bat文件
- iOS开发中控制屏幕旋转的编写方法小结
- 理解Javascript_11_constructor实现原理
- 列举PHP的Yii 2框架的开发优势
- struts2开发流程及详细配置
- Linux利用UDF库实现Mysql提权
- 浅析Android中的visibility属性
- PHP在linux上执行外部命令的方法
- Python语言实现机器学习的K-近邻算法
- 布同 统计英文单词的个数的python代码
- MySQL中InnoDB的间隙锁问题
- Powershell改变脚本执行优先权的代码分享
- 用批处理生成网页文件并打开的代码
- Python中你应该知道的一些内置函数
- java 获取当前路径下的所有xml文档的方法
- stl容器set,map,vector之erase用法与返回值详细解析
- javaScript实现复选框全选反选事件详解
- JavaScript 事件入门知识
- 深入分析Visual C++进行串口通信编程的详解