为了账号安全,请及时绑定邮箱和手机立即绑定

接口中的默认方法

接口中的默认方法

慕少森 2021-08-06 10:43:02
有一段时间我一直困惑为什么我们需要接口中的默认方法,今天我正在阅读它。尽管我的问题很少得到回答,但我仍然有一些疑问。让我们举一个简单的例子,我有一个 interface1。A类和B类实现interface1。interface1 有一个方法 X。interface interface1{    void methodX();}class A implements interface1{   @override   public void methodX(){      //something   };}class B implements interface1{   @override   public void methodX(){      //something   };}据我了解,由于向 interface1 添加新方法 Y 会破坏 A 类和 B 类,因此引入了默认方法。这意味着现在我可以添加一个默认方法,而无需修改 A 类和 B 类。这也意味着默认方法必须足够通用,才能为 A 类和 B 类执行我们期望它做的任何事情.现在,让我们考虑一下我们通常在接口中添加函数,以便我们可以通过覆盖它来为它们提供特定于类的实现。所以基本上,如果我在接口中添加一个方法 Y 作为默认值,那么我会期望类 A 和类 B(或类 A/ClassB)覆盖该方法。这意味着,我将修改 A 类/B 类或两者兼而有之。这就是让我困惑的地方。这可以通过创建一个新接口并修改 1 个(或两个)类来实现该新接口(接口 2 扩展接口 1)来处理,然后在类中提供相同的实现。interface interface2 extends interface1{     void methodY();}class A implements interface2{     @override     public void methodY(){         //something     }}class B implements interface1{   @override   public void methodX(){      //something   };}默认方法实际上如何帮助我们不修改实现它的类。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信