java接口中的default修饰符(jdk1.8)

本文探讨了Java接口中default方法的作用,如何避免在接口升级时对已有实现类的影响。通过示例展示了当一个类实现多个具有相同default方法的接口时,需要重写该方法以解决冲突。此外,还分析了接口方法的业务背景和注意事项。
摘要由CSDN通过智能技术生成

作用

接口中被default修饰的方法有默认实现。
实现该接口的类可以不重写接口中被default修饰的方法。
接口:IDefault

public interface IDefault {
    int testA();
    //使用default修饰
    default int testB(){
      return 123;
    };
}

实现类:Test

public class Test implements IDefault {
    @Override
    public int testA() {
        return 5;
    }

    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.testA());
        System.out.println(test.testB());
    }
}

输出结果
在这里插入图片描述

业务背景

在接口中新增一个方法,如果该接口有多个实现类,就要在多个实现类中重写该方法,如果使用default修饰就可以避免该操作。

注意事项

当一个类实现多个接口,且接口中被default修饰方法相同时,必须重写该方法。
方法相同:方法名、参数、返回类型都相同。
方法名、参数相同而返回类型不同的接口不能用同一个类实现。
接口2:IDefault2

public interface IDefault2 {
    default int testB(){
        return 321;
    }
}

实现类:Test

public class Test implements IDefault , IDefault2 {
    @Override
    public int testA() {
        return 5;
    }

    @Override
    public int testB() {
        return 123321;
    }

    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.testA());
        System.out.println(test.testB());
    }
}

输出结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值