我试图找出是否有可能将匿名内部类创建为抽象类。我认为这没有意义,因为我正在尝试创建抽象类的实例,但是编译器发出的消息使我感到困惑:
类“从Test派生的匿名类”必须声明为抽象或在Test中实现抽象方法“ method()”
码:
abstract class Test{
abstract void method();
}
Test o = new Test(){};
如果可以将匿名类声明为抽象类,请让我知道该怎么做。
我很乐意回答。
最佳答案
参见JLS Sec 15.9.5(强调我的观点):
15.9.5。匿名类声明
Java编译器自动从类实例创建表达式派生匿名类声明。
匿名类从不抽象(第8.1.1.1节)。
匿名类始终是隐式最终的(第8.1.1.2节)。
匿名类始终是内部类(第8.1.3节);它永远不会是静态的(第8.1.1节,第8.5.1节)。