java中怎么在接口中定义变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么在接口中定义变量相关的知识,希望对你有一定的参考价值。

接口定义的变量会默认用final修饰,然后就变成了常量,所以从最终结果来看接口是不可以定义变量的,定义了之后也会变成常量。 参考技术A public static final int aaa = 1; private static final String bbb = "Hello world!";
接口中不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的。
所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供一个统一的属性。

在Java接口的实现类中如何调用这个接口中定义的变量?

Java类实现了一个接口,继承了一个类,如何访问接口与父类中相同的变量,代码如下:
class Aint num=10; //定义父类

interface B int num=1; //定义接口

public class C extends A implements B
public static void main(String[] args)
System.out.println("num is "+num); //这一行报错,不知道访问的num是父类中的还是接口中的



问题:
1) 实现类会不会继承接口中的变量?
2) 在C中如何调用在B中定义的num?

class Aint num=10;
public int getNum()
return num;

//定义父类

interface B int num=1; //定义接口

public class C extends A implements B
public static void main(String[] args)
C c=new C();
System.out.println(c.getNum());
System.out.println(B.num);



因为接口里面的i是常量,就如楼上的所说,
你要访问,因为随便哪个在接口里的常量
都是静态的,可以通过类名即B.num调用,而
在类里面定义的就不同,你可以专门写一个方法
来取值!你想直接调用接口和类中的同名num是
做不到的!
参考技术A 接口中默认修饰是public static final

所以接口中的是常量,而不是变量。

1)super.num 应该是可以调用到父类的。
2)接口中的是静态常量,用B.num(即接口名.常量名)可以调用

以上是关于java中怎么在接口中定义变量的主要内容,如果未能解决你的问题,请参考以下文章

java里的interface接口类怎么用

java 类中定义接口怎么实现

接口测试---mock变量自定义变量的使用

在Java接口的实现类中如何调用这个接口中定义的变量?

java接口定义的方法是私有吗?

JAVA中定义接口时可以包涵哪些成员?