java中的方法的默认_Java中的默认方法

Java 8引入了接口中默认方法实现的新概念。添加此功能是为了实现向后兼容,因此可以使用旧接口来利用Java 8的lambda表达功能。

例如,“列表”或“集合”接口没有“ forEach”方法声明。因此,添加这种方法将简单地破坏收集框架的实现。Java 8引入了默认方法,以便List / Collection接口可以具有forEach方法的默认实现,并且实现这些接口的类不必实现相同的方法。

语法public interface vehicle {

default void print() {

System.out.println("我是车!");

}

}

多个默认值

使用接口中的默认功能,类可能会使用相同的默认方法来实现两个接口。以下代码说明了如何解决这种歧义。public interface vehicle {

default void print() {

System.out.println("我是车!");

}

}

public interface fourWheeler {

default void print() {

System.out.println("我是四轮车!");

}

}

第一个解决方案是创建一个覆盖默认实现的自己的方法。public class car implements vehicle, fourWheeler {

public void print() {

System.out.println("我是四轮车车!");

}

}

第二种解决方案是使用super调用指定接口的默认方法。public class car implements vehicle, fourWheeler {

default void print() {

vehicle.super.print();

}

}

示例public class Java8Tester {

public static void main(String args[]) {

Vehicle vehicle = new Car();

vehicle.print();

}

}

interface Vehicle {

default void print() {

System.out.println("我是车!");

}

static void blowHorn() {

System.out.println("Blowing horn!!!");

}

}

interface FourWheeler {

default void print() {

System.out.println("我是四轮车!");

}

}

class Car implements Vehicle, FourWheeler {

public void print() {

Vehicle.super.print();

FourWheeler.super.print();

Vehicle.blowHorn();

System.out.println("我是车!");

}

}

输出结果我是车!

我是四轮车!

Blowing horn!!!

我是车!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值