java 接口中的常量

最近才知道java接口中不可以声明变量,只可以定义static final类型的常量。上网搜了一下,总结如下:

1. java 接口是一个纯粹的抽象类,不提供任何具体的实现,只是提供了一个协议,实现它的子类共同遵守这份协议。接口A中的属性a如果可以定义为静态变量,那么就可以直接通过A.a=xxx;的方法直接修改该属性,而这样做是不安全的。因为接口中的属性是所有实现它的子类共享的,是全局变量,每一个更改都会影响所有的子类。

2.接口是概念级抽象,它不表示任何实体,而属性是用于表示某个对象特征,如果接口拥有属性,那岂不违背了接口高度抽象的原则。

3.java设计原则中有一项是面向抽象编程,即面向接口编程。接口是概念的抽象,它表示可以做什么,但是具体功能的实现要通过它的子类来完成。所以在编程过程中我们可以将方法尽量向上转移,即实现同一接口的子类的共同方法放在接口中;而属性变量尽量下移,即将属性变量放在具体的实现子类中,因为属性是表征具体对象特性的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值