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 我可以在实例化匿名类时实现接口吗?_Java_Instantiation_Anonymous Class - Fatal编程技术网

Java 我可以在实例化匿名类时实现接口吗?

Java 我可以在实例化匿名类时实现接口吗?,java,instantiation,anonymous-class,Java,Instantiation,Anonymous Class,假设我有一个抽象类factorzeddialog。看起来是这样的(请注意,这只是一个虚拟示例) 现在我可以这样做: FactorizedDialog dialog = new FactorizedDialog() { @Override public void myMethod() { // implementation here } } 正如您可能猜到的,我扩展Dialog(实际上是一个

假设我有一个抽象类
factorzeddialog
。看起来是这样的(请注意,这只是一个虚拟示例)

现在我可以这样做:

FactorizedDialog dialog = new FactorizedDialog() {

            @Override
            public void myMethod() {
                // implementation here
            }
}

正如您可能猜到的,我扩展Dialog(实际上是一个抽象类)只是为了向它添加一个方法,以便在创建匿名类时可以重写它。当我实例化Dialog而不是使用派生的抽象类时,是否可以在java中实现接口?

否,当指定匿名内部类的超类时,可以指定要扩展的普通类或接口,但不能同时指定两者。中所示的语法根本不允许两者都使用。

如果您指的是下面的
对话框
是一个接口,那么可以这样做

Dialog dialog = new Dialog() {

    @Override
    public void myMethod() {
    }
}

当然,
myMethod
的声明应该进入
对话框
界面。

正如我提到的,这两个都是抽象类。@edem是的,我在发布我的答案后注意到了这一点。
Dialog dialog = new Dialog() {

    @Override
    public void myMethod() {
    }
}