【发布时间】:2019-04-19 11:17:53
【问题描述】:
为什么抽象类支持静态和实例块而接口不支持?即使我们无法实例化抽象类,抽象类也支持构造函数。
abstract class Abs{
final int x;
final int y;
final static int z;
public Abs(){
x=10
}
{
y=10;
}
static{
z=10;
}
}
在上面的代码中,我在运行时初始化了一个变量,但同样的事情不适用于接口。为什么?
【问题讨论】:
-
接口不是一个类,它没有构造函数、变量或任何代码,只有方法签名,Java 8 之后的
default方法实现除外。 -
interface 也有变量,默认修饰符 public static 和 final。如果接口不是类那么为什么编译后生成.class文件
标签: java