Java 8 default 函数
我们知道在java8之前 ,一个类实现一个接口需要实现接口所有的方法,
但是这样会导致一个问题,当一个接口有很多的实现类的时候,修改这个接口就变成了一个非常麻烦的事,需要修改这个接口的所有实现类
不过在java8中这个问题得到了解决,没错就是default函数;
看一个例子:
 interface DefaultInterface {
     int operate(int a, int b);
     default int addition(int a, int b) {
         return a + b;
     }
 }
 public class DefaultMethodTest implements DefaultInterface {
     @Override
     public int operate(int a, int b) {
         return a - b;
     }
     public static void main(String[] args) {
         DefaultMethodTest defaultMethodTest = new DefaultMethodTest();
         System.out.println("5 + 3 = " + defaultMethodTest.addition(5, 3));
         System.out.println("5 - 3 = " + defaultMethodTest.operate(5, 3));
     }
 }
我们看到 DefaultInterface 接口的addition方法用default进行了修饰,并且有自己的默认实现. 而DefaultMethodTest 实现了 DefaultInterface 接口却不用实现addition方法.
这样如果我们对一个接口就行修改,而又不想修改已经有的实现类的时候就变得非常有用.
Java 8 default 函数的更多相关文章
- 不使用java内置函数,将String字符串转换为int类型
		package com.test; public class AtoiTest { public static void main(String[] args) throws Exception { ... 
- 大话java基础知识一之为什么java的主函数入口必须是public static void
		为什么java的主函数入口必须是public static void main (String[] args); 很多写javaEE好几年的程序员经常会记得java的主函数就是这么写的,但实际上为什么 ... 
- 还不了解一下 Java 8 Predicate 函数接口
		同学你好,这里有一份你的未读代码,等你查收. 这篇文章属于 Java 8 教程(LTS)系列教程,点击阅读更多相关文章. Predicate 函数接口同之前介绍的 Function 接口一样,是一个函 ... 
- java String.split()函数的用法分析
		java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,195 次 在java.lang包中有String.spl ... 
- Android使用JNI(从java调用本地函数)
		当编写一个混合有本地C代码和Java的应用程序时,需要使用Java本地接口(JNI)作为连接桥梁.JNI作为一个软件层和API,允许使用本地代码调用Java对象的方法,同时也允许在Java方法中调用本 ... 
- 关于C++与Java中虚函数问题的读书笔记
		之前一直用C++编程,对虚函数还是一些较为肤浅的理解.可近期由于某些原因搞了下Java,发现有些知识点不熟,于是站在先驱巨人的肩上谈谈C++与Java中虚函数问题. Java中的虚函数 以下是段别人的 ... 
- 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
		用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ... 
- java中main函数解析(转载)
		从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ... 
- java的数学函数总结
		java的数学函数都放在java.lang这个包中,并且这些函数的方法在类Math中是作为static方法出现的,所以要引用一个特定的函数,只需将类Math和一个圆点写在要使用的方法前就好.如方法sq ... 
随机推荐
- CodeForces - 361D  Levko and Array
			Discription Levko has an array that consists of integers: a1, a2, ... , an. But he doesn’t like this ... 
- Flexible and Economical UTF-8 Decoder
			http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ 
- delphi的^和@的作用
			Pint:^string;在这里将^放在数据类型之前,说明是声明的字符串指针类型!如果想取出指针引用的值的话,就将^放在声明的类型后就可以了,比如:Pint^想取Pint类型的所引用地址的话,就将@放 ... 
- windows service 调试
			在程序运行入口调试 #if DEBUG Debugger.Launch(); #endif 
- Android中的多线程断点续传
			Android多线程断点下载的代码流程解析: 运行效果图: 实现流程全解析: Step 1:创建一个用来记录线程下载信息的表 创建数据库表,于是乎我们创建一个数据库的管理器类,继承SQLiteOpen ... 
- Upan
			http://www.xiazaijidi.com/ http://www.ushendu.com/ 
- GIS可视化——属性图
			一.简介 SuperMap iClient for JavaScript 提供了UTFGrid图层(属性图),用于客户端属性信息的快速交互. UTFGrid图层从UTFGrid切片数据源读取数据,其本 ... 
- 2016.7.12 eclipse和IDEA中mybatis generator插件的安装与使用
			Eclipse中的安装 http://jingyan.baidu.com/article/9faa7231506ed8473c28cbee.html 1.下载插件 2.将插件generator的fea ... 
- 我的Android进阶之旅------>怎样在多个LinearLayout中加入分隔线
			假设要适合于全部的Android版本号,能够在多个LinearLayout放置用于显示分隔线的View. 比如,放一个ImageView组件.然后将其背景设为分隔线的颜色或图像,分隔线View的定义代 ... 
- HPE IT 的DevOps 实践分享
			原文地址:http://www.codes51.com/article/detail_3124576.html 本篇文章来自于HPE和msup共同举办的技术开放日HPE测试技术总监肖俊的分享,由壹佰案 ... 
