Java关键字default
来源:互联网 发布:荒潮 知乎 编辑:程序博客网 时间:2024/05/22 18:26
今天打算写一篇ConcurrentHashMap的源码分析,在看源码过程中发现一个接口中有了default关键字,这是生平第一次见到这个关键字,然后Google了一下,发现是Java8的新特性,所以就打算写一篇关于default的文章。
default常用于接口中,从它的中文意思行来看,大概能猜个差不多,我们本来写Java接口的时候,是不能有方法体的函数,就类似于C++中的虚函数,default关键字在接口中修饰方法时,方法可以有方法体,来看一个例子。
public interface Default { default public void method(){ System.out.println("method in interface"); }}一个接口,method方法在使用关键字default后可以有方法体了。
public class DefaultImpl implements Default { @Override public void method() { System.out.println("method in Class"); } public static void main(String[] args){ Default d = new DefaultImpl(); d.method(); }}DefaultImpl实现了Default接口,最终运行结果:
而此时如果Default接口再加一个方法呢,如果这个方法没有default关键字修饰,则DefaultImpl没有实现这个方法就会报错,这就体现了default关键字的作用。我们继续修改Default接口。
Default接口如下:
public interface Default { default public void method(){ System.out.println("method in interface"); } default public void doSomeThing(){ System.out.println("do something in interface"); }}DefaultImpl并没有重写doSomeThing方法
public class DefaultImpl implements Default { @Override public void method() { System.out.println("method in Class"); } public static void main(String[] args){ Default d = new DefaultImpl(); d.method(); d.doSomeThing(); }}运行结果如下:
运行结果符合Java多态的特性,default关键字可以让接口中的方法可以有默认的函数体,当一个类实现这个接口时,可以不用去实现这个方法,当然,这个类若实现这个方法,就等于子类覆盖了这个方法,最终运行结果符合Java多态特性。
阅读全文
0 0
- Java default关键字
- Java关键字default
- Java default关键字
- Java关键字之private、default、protected、public
- JAVA关键字--private protected public default
- default关键字
- default关键字
- java中public,private,protected,(default)关键字
- Java的default、native关键字以及label简介
- c# Default关键字
- c# Default关键字
- Default关键字的使用
- c# Default关键字
- C# 关键字--default
- C# 关键字--default
- default关键字作用
- C# default 关键字
- Java8-default / defender关键字
- Python学习历程
- ZOJ 3469 区间DP
- Android沉浸式状态栏三种方式的实现
- 网易云音乐唱片机效果
- python-os
- Java关键字default
- AudioTrack.cpp 源码分析
- 如何观看VGA视频课件公开课
- 如何拆分含有多种分隔符的字符串
- C++ 简单的桶排序
- JAVA内存区域与内存溢出异常(一)
- Python中空格字符串的处理技巧
- Android学习之Padding和Margin的区别
- 习题 2.4(4) 求1+2+3+···+100。