java接口的静态方法

本文探讨了Java接口中定义静态方法的特性,以及为何实现类直接调用接口静态方法会报错,并解释了如何通过接口名调用以避免潜在冲突。重点在于接口静态方法的使用场景和限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前java接口中已经支持定义静态方法 但需要注意一个点

我们先把代码写出来

我们创建一个包

下面创建一个接口 subInterface 接口参考代码如下

public interface subInterface {
    static void show2() {
        System.out.println("来自接口的静态方法");
    }
}

这里 我们就将 show2 定义成了一个静态的方法

然后 我们可以定义一个实现类来实现这个接口

public class realizationMethod implements subInterface {
}

这里 大家就可以看出 我们静态方法 因为是有方法体的 所以也是可以不用重写的 当然 接口的静态方法 你也不需要重写 重写你也用不了

然后 我们定义一个测试类 来调用接口方法

public static void main(String args[]) {
    subInterface real = new realizationMethod();
}

这里 我们通过realizationMethod类创建了一个subInterface接口的对象

然后 我们试着调用show2
在这里插入图片描述
可以看到 我们这里是报错了 可能就会有人说 让realizationMethod类重写一下subInterface 的show2

但重写之后 还是会报错的

这里 我们要直接通过接口名来调用静态方法

测试类代码修改如下

public static void main(String args[]) {
    subInterface real = new realizationMethod();
    subInterface.show2();
}

运行结果如下
在这里插入图片描述

因为 比如 你有 A B两个接口 他们都写了一个静态方法 然后 C类继承了两个接口 然后 C类调用了 A B接口都有点那个静态方法 那么计算机就蒙了 你调的到底是 A的还是B的静态方法呢?

所以 为了避免争议 java直接封了实现类调用接口静态方法的写法 你想用接口的静态方法 就要用接口名去调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值