【问题标题】:Overriding method while creating an object [duplicate]创建对象时覆盖方法[重复]
【发布时间】:2015-09-18 20:13:57
【问题描述】:

我遇到了一段我不完全理解的代码。

在这样的类中创建了一个接口:

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;
            }
        }
    }

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

【问题讨论】:

    标签: java class interface overriding


    【解决方案1】:

    他们被称为annonymous classes

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

    编辑:

    它们与本地类类似,只是它们没有名称。如果您只需要使用一次本地类,请使用它们。

    【讨论】:

    • SomeOtherName 是匿名类吗?它有什么用?建议什么时候使用?
    • @user3044240 文档对我们来说是上帝 :) 读一次。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-01-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多