与java中的接口混淆

与java中的接口混淆,java,interface,Java,Interface,假设我有一个在自己内部声明接口的主类,我有两个不同的类,它们在实现接口的主类外部声明。这里有一个例子来说明我的意思 class ClassMain{ interface InFace{ void implementMethod(); } InFace inFace; public someMethod(){ inFace.implementMethod(); }

假设我有一个在自己内部声明接口的主类,我有两个不同的类,它们在实现接口的主类外部声明。这里有一个例子来说明我的意思

class ClassMain{

        interface InFace{
            void implementMethod();
        }

        InFace inFace;

        public someMethod(){
            inFace.implementMethod();
        }
    }

    //class A implements InFace

    class A implements InFace{
        void implementMethod(){
            doSomeOneThing;
        }
    }


    //class B implents InFace

    class B implements InFace{
        void implementMethod(){
            doSomeTwoThing;
        }
    }
接口inFace的对象inFace从ClassMain调用implementMethod时会发生什么?它将执行soSomeOneThing还是DoSomeToThing?

一些在相同命名方法中执行不同计算的常见类可以使用接口进行分组

假设您有一个InFace接口列表

List<InFace> faces = new ArrayList<Inface>();
faces.add(new A());
faces.add(new B());

代码将抛出NullPointerException,因为inFace尚未实例化

您需要为声明的变量inFace分配一个实现

这可以是A类或B类

InFace inFace = new A();

在当前示例中,您应该向ClassMain添加一个构造函数,以允许从外部自定义inFace。

为什么不运行它并查看一下?以及直线法;反正也不会编译。我有点匆忙,所以出错了。。现在编辑。我想知道背后的概念it@sᴜʀᴇsʜᴀᴛᴛᴀ
InFace inFace = new A();