java - 为什么参数定义的方法内部匿名方法内部类行有效?

InterfaceInAbstractClass.java

public abstract class InterfaceInAbstractClass {

    public interface Inter{

        void interface_method();

    }

    public  void interface_abstract_class_method(Inter in){

    }

}


InterfaceInAbstractClassImplementer.java

public class InterfaceInAbstractClassImplementer extends InterfaceInAbstractClass{

    public static void main(String[] args){

//      InterfaceInAbstractClass.Inter abcd = new InterfaceInAbstractClass.Inter() {
//          
//          @Override
//          public void interface_method() {
//              // TODO Auto-generated method stub
//              System.out.println("An interface can be implemented ");
//          }
//      };
        System.out.println("An interface can be implemented ");
        InterfaceInAbstractClassImplementer abc = new InterfaceInAbstractClassImplementer();
        abc.interface_abstract_class_method(new Inter() {

            @Override
            public void interface_method() {
                // TODO Auto-generated method stub
                System.out.println("An interface can be implemented within a class");
            }
        });     
    }
}


为什么System.out.println(“一个接口可以在一个类中实现”);没有打印?

最佳答案

对您的实现者类进行小的调整以调用接口函数

public class InterfaceInAbstractClassImplementer extends InterfaceInAbstractClass{

    public static void main(String[] args){

        System.out.println("An interface can be implemented ");
        InterfaceInAbstractClassImplementer abc = new InterfaceInAbstractClassImplementer();
        Inter inter = new Inter() {

            @Override
            public void interface_method() {
                // TODO Auto-generated method stub
                System.out.println("An interface can be implemented within a class");
            }
        };
        abc.interface_abstract_class_method(inter);
    }

    public void interface_abstract_class_method(Inter inter) {
        inter.interface_method();
    }
}


输出:

An interface can be implemented
An interface can be implemented within a class

本文翻译自 https://stackoverflow.com/questions/37338397/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 java inner-classes anonymous-class anonymous-methods anonymous-inner-class


相关文章:

java - While循环未完成

java - 从右到左阅读语言的Java消息属性选项

java - 从其封闭类的静态方法中实例化内部类[重复]

c++ - 在另一个文件中定义匿名类的方法

java - Java lambda匿名对象是否被重用?

java - 运行Jar文件时出错

java - 如何在Java中将LocalDate.now()用作表名

android - 为什么我应该在Android中使用匿名类而不是类重新定义?

java - 在Java中设置内部类实例的字段值的更好方法

java - 我们可以创建接口和抽象类的对象吗?