为什么接口中的方法不能是static类型的

2025-05-13 19:41:42
推荐回答(3个)
回答1:

我对java机制不是很清楚 很多专用名词不是很知道 但是接口好像是一个变体的抽象类 不能实例化 这时候成员变量必须生成static 因为加载这个类的时候会放在本地方法区 不是堆栈里面 所以不需要实例化就可以得到 但方法生成static 其一static方法不能重写 就算子类(不是接口)要重写父类的方法 也不能用static
原理 我想想
static和类在jvm加载类的时候和类一起生成在本地方法区(有的说是在stack里面 不管怎么样 就不能在heap里面 heap是存放对象的数据的) 确实可以继承 说明白就是可以得到它的方法 它放在本地方法区 肯定可以不通过对象引用就可以得到啊 这和反射机制 class.forName()原理差不多 但是要重写就不可能了 充其量自己写的一模一样的方法 但是和父类的static没有任何关系 我理解的是这样的
我今年刚满20 现在在一软件公司干了快一年了 所以很多原理不是特别明白
我oracle更精通些 因为我在公司主要搞数据库管理和后台开发 不过java我还是很喜欢研究和学习的

回答2:

接口的所有方法都是抽象的,而抽象方法是没有static,有static的方法是不能override的,所以这样定义接口才有意义。
接口中的变量也都是Final、static。

回答3:

规定。