创建对象时覆盖方法

时间:2015-09-18 20:13:58

标签: java class interface override

我遇到了一段我不太了解的代码。

在类中创建了一个接口:

public class SomeClass {

    public interface SomeInterface{
        public String getInfo(String str1, String str2);
    }

    public static final SomeInterface SomeOtherName = new SomeInterface() {

            @Override
            public String getInfo(String str1, String str2){
                //return something;
            }
        }
    }

然后在另一个班级中,他们使用getInfo调用方法SomeOtherName。我不明白这里发生了什么。说实话,我没有在类中创建接口,然后创建该接口类型的对象,然后覆盖其中的方法。有人可以解释我在这段代码中发生了什么,因为我需要测试它。

2 个答案:

答案 0 :(得分:3)

它们被称为annonymous classes

  

它们使您能够同时声明和实例化一个类。

修改:

  

它们就像本地类,除了它们没有名称。如果您只需要使用本地类一次,请使用它们。

答案 1 :(得分:1)

SomeOtherName是实现SomeInterface接口的anonymous class的实例。