代码如下:
interface num{
int k=6;
}
public class NumIpml implements num{
static int k=10;
public static void main(String[] args) {
System.out.println("接口中的属性 k的值为 :k="+num.k);
System.out.println("实现类中的属性k的值为:k="+NumIpml.k);
}
}
输出结果:
接口中的属性 k的值为 :k=6
实现类中的属性k的值为:k=10
为什么“System.out.println("接口中的属性 k的值为 :k="+num.k); ” 这句代码可以用接口名直接调用它里面的属性值?
------解决思路----------------------
接口中的属性默认为 public static final, 因此你可以直接通过接口名进行访问
------解决思路----------------------
你可以这样理解抽象类是特殊的类,他里面有抽象方法,不能直接初始化
而接口则是特殊的抽象类,它里面全是抽象方法,他的成员变量也全是 public static final 的
虽然接口不能创建对象,但是对象可以实现接口,这样我们在创建接口的时候就会拥有对象的所有属性,你也可以调用对象,至于怎么在内存中运行,你可以详细看看 java 的继承机制
------解决思路----------------------
静态资源是在类加载时就分配好空间并初始化的 不依赖实例 实例的变量(成员变量)是new之后才分配空间