在Java中,接口能否创建非静态变量?
Java 中的接口类似于类,但它只包含抽象方法和字段,这些字段是 final 和 static 的。
由于所有方法都是抽象的,因此您无法实例化它。要使用它,您需要使用类实现此接口,并在其中为所有抽象方法提供主体。
接口中的非静态变量
不可以,您不能在接口中使用非静态变量。默认情况下,
接口的所有**成员**(方法和字段)都是**public**的
接口中的所有**方法**都是**public**和**abstract**的(静态和默认方法除外)。
接口的所有**字段**默认情况下都是**public、static**和**final**的。
如果您声明/定义字段时没有使用 public 或 static 或 final 或所有三个修饰符,Java 编译器会代表您添加它们。
示例
在下面的 Java 程序中,我们有一个没有 public、static 或 final 修饰符的字段。
public interface MyInterface{
int num = 40;
void demo();
}如果您使用以下所示的 javac 命令编译它:
c:\Examples>javac MyInterface.java
它将编译通过,没有任何错误。但是,如果您使用以下所示的**javap**命令在编译后验证接口:
c:\Examples>javap MyInterface
Compiled from "MyInterface.java"
public interface MyInterface {
public static final int num;
public abstract void demo();
}您可以观察到,编译器已代表您在字段前添加了 public、static 和 final 修饰符。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP