Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何声明这个匿名类Abstract?_Java_Class_Abstract Class - Fatal编程技术网

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那么为什么错误会说您要将其声明为抽象的或。。。