有关java里面的interface不解?
为什么interface不能有构造器和初始化语块,而且Field必须是publicstaticfinal类型,方法必须是publicstatic类型?...
为什么interface不能有构造器和初始化语块,而且Field必须是public static final 类型,方法必须是public static 类型?
展开
3个回答
展开全部
语法方面我想你自己已经清楚了,只是不明白为什么要这么设计。
所以我从interface的设计目的来说。
从interface的作用和目的来说:
interface的作用是定义一个接口,定一个规范。当然它只是一个规范,是给别人去遵守的,具体的还需要别人去执行,去遵守。就类似制定法律和执行法律的人不能是同一个人一样这个道理。
既然interface要别人来遵守(实现),那么interface就必须要暴露出来,给大家看到。就必须是可以被继承和访问的。所以必须为public。
因为interface只是规范,自己无法实现,所以也就没必要有构造器。不能有初始化代码块也是这个道理。
既然是规范,那么就不能被随意修改。所以field是final的。但是方法是需要子类来实现的,所以又不能是final的,因为子类要实现的话就会涉及到重载。重载就相当于修改了interface的方法。
interface严格来说也是一个类,并且不能实例化,但是又要能被外部访问,所以必须为static的。
展开全部
interface是一个接口,你只要记住接口里面只有一些方法和常量的定义,没有具体的代码实现就可了。里面的方法不一定是public static类型的,但是全部都是抽象方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有些就是固定的,你就接受它,利用它来开发。
追问
可是不明白,感觉怪怪的,记不住
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询