为什么接口里边的属性是默认为final static 的

Q:为什么接口里边的属性是默认为final static 的?

A:
static:接口是无法被实例化的,所以接口里边的属性与对象无关,因此属性是静态的;
final:
  大家的疑惑点是:为什么接口的属性是final的。
有些答案
  类在创建对象的时候会给他开辟一个内存空间,并且初始化类变量和方法,对于类变量,会自动赋初值(例如int 0, Boolean false…)。而接口无法实例化,因此接口里边的属性就是final的。

我觉得还是很有问啊:接口无法实例化,与属性是不是final有什么逻辑关系?

我的观点:
  接口是一个公用的类,既然是公用的类,那接口里边的属性是变量有什么意义呢?他被n个类实现,难道还要继承他的一个变量?
  有人就会这么说了,重构啊,写一个变量了不用再写实现类里边的这个变量,不是很简洁嘛,利于重构嘛。
  我们知道抽象类有final、非final属性,那如果接口也这样有什么意义呢?接口就是必须跟抽象方法有区别,不然他存在有什么意思?并且还是很常用。接口定义为共享类,他的属性是final的,也就是常量,被实现的类公用(非private属性)。因此他是final的

因此接口里面的属性是static final的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值