java8新特性:接口的默认方法与静态方法
2024-09-04 16:56:31
接口中一共可以定义三种方法:
1、抽象方法,也就是需要实现者必须实现的方法,最常见的那种
2、默认方法,不需要实现者实现
3、静态方法,不需要实现者实现
默认方法:
允许在已有的接口中添加新方法,而同时又保持了与旧版本代码的兼容性,默认方法与抽象方法不同之处在于抽象方法必须要求实现,但是默认方法则没有要求实现,相反,每个接口都必须提供一个默认实现,这样所有的接口实现者将会默认继承他(如果有必要的话,可以覆盖这个默认实现)
静态方法:
允许在已有的接口中添加静态方法,接口的静态方法属于接口本身,不被继承,也需要提供方法的实现。
默认方法和静态方法的访问:
接口的静态方法:直接用接口的类型.方法名。
接口的默认方法:得到接口的实现类对象,直接用对象的引用.方法名。默认方法可以被实现类覆盖。
下面上实例:
/**
* 测试接口
*/
public interface IFunctional { //定义一个抽象方法,要求被实现着实现
void method(String from); //定义一个默认方法,不要求被实现
default void defaultMethod(){
System.out.println("接口的默认方法");
} //定义一个静态方法,不要求被实现
static void staticMethod(){
System.out.println("接口静态方法的默认实现");
}
}
继承类
**
* 测试实现类
*/
public class Main implements IFunctional {
@Override
public void method(String from) {
System.out.println("子类实现的接口抽象方法...");
} public static void main(String[] args) {
Main main = new Main();
//访问接口的默认方法
main.defaultMethod();
//访问接口的静态方法:直接用接口的类型.方法名
IFunctional.staticMethod();
}
}
最新文章
- VB.NET中图像处理的一些技巧以及其和C#图像处理的差距。
- 源码编译安装mysql
- js-sort数组排序
- 升级tomcat7的运行日志框架到log4j2,可以打进kafka
- DX11.2 Tiled Resource Pool
- [Unity菜鸟] Unity鼠标双击,鼠标函数整理(未完)
- hdu 5495 LCS 水题
- JQuery调用iframe父页面元素与方法
- 湖南省第八届大学生程序设计大赛原题 D - 平方根大搜索 UVA 12505 - Searching in sqrt(n)
- Razor button
- ContourLine
- String,StringBuffer,StringBuilder个人认为较重要的区别
- 剑指offer编程题Java实现——面试题12打印1到最大的n位数
- P2P平台介绍
- python unittest addCleanup中也加失败截图功能
- 将一个xml文件解析到一个list中
- tomcat-内存溢出java.lang.OutOfMemoryErrory:PermGen space解决方法
- 【已解决】Chrome提示:"请停用以开发者模式运行的扩展程序"的解决办法
- Linux 4.10中两个新特性与我的一段故事
- eagle学习汇总