版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangshuaionline/article/details/85322588
Default Methods是java8中的特性,主要是在之前接口中智能定义方法名称和参数类型,并不能写实际的逻辑,java8之后使用Default Methods就可以写了,下面看一个例子:
首先定义接口:
public interface TestDefault {
void setName();
default void setContent(){
Log.w("打印","依然走了default");
}
}
然后调用接口:
new TestDefault() {
@Override
public void setName() {
Log.w("打印","name");
}
@Override
public void setContent() {
Log.w("打印","content");
}
}.setContent();
打印结果为:
W/打印: content
结论一:在重写了default方法之后,该程序的逻辑走的是重写的部分,而没有走default部分。
修改代码:
new TestDefault() {
@Override
public void setName() {
Log.w("打印","name");
}
}.setContent();
打印输出结果:
W/打印: 依然走了default