java接口的变量为什么是public static final 的

首先说明为什么是static的,我是这么理解的:
    
    1. 类是单继承多接口,如果接口的变量不是静态的,当多个接口中有相同的变量时,计算机怎么知道这个变量到底是哪个接口的,特别是当这些接口的变量有默认值的时候,这将如何分辨?
    
    2. 接口是不能实例化的,如果接口中有非静态变量,我们就得必须构造实现类的实例,才能使用接口中的变量。

根据以上两点,接口中的变量必须是static的。

接下来,说明为什么必须是final的:

     现在,我们知道接口的变量必须是static的,也就是在运行过程中,内存里只保留一份数据,那么如果有其他的方法修改了这个接口的静态变量,将会破坏接口的一致性。导致方法之间互相影响。所以,接口的变量必须是final的。

     以上仅仅是我个人理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值