Java 如何声明这个匿名类Abstract?
在编写一些代码时,我遇到了一些与这段代码相关的问题-Java 如何声明这个匿名类Abstract?,java,class,abstract-class,Java,Class,Abstract Class,在编写一些代码时,我遇到了一些与这段代码相关的问题- public class Test { final int f = 0; void method() { new AbstractClass() { @Override public void methodInner() { } }; } public static abstract class AbstractClass { int f; public
public class Test {
final int f = 0;
void method() {
new AbstractClass() {
@Override
public void methodInner() {
}
};
}
public static abstract class AbstractClass {
int f;
public abstract void methodInner();
}
}
现在,在代码中进行一些修改时,我没有重写抽象类中的抽象方法
public class Test {
final int f = 0;
void method() {
new AbstractClass() {
};
}
public static abstract class AbstractClass {
int f;
public abstract void methodInner();
}
}
现在我确信这将给出一个错误,因为我没有重写该方法。它给出的错误
java: <anonymous Test$1> is not abstract and does not override abstract method methodInner() in Test.AbstractClass
java:不是抽象的,并且不重写Test.AbstractClass中的抽象方法methodInner()
现在我试图将
抽象化,但无法实现,有没有办法将此匿名内部类抽象化?没有。您的匿名类用于创建实例。不能直接实例化抽象类。这就是它的抽象之处。@khelwood只是想确定一下,谢谢。你不能让匿名类抽象。如果可以,那就没什么意义了,因为您无法扩展匿名类,也无法实例化抽象类,因此抽象匿名类根据定义是不可用的。匿名类不能是抽象的,因为它们是在现场实例化的(因此,new Something(){…}
)。抽象类还没有“准备好”进行实例化,这就是抽象的意思。@khelwood那么为什么错误会说您要将其声明为抽象的或。。。