【问题标题】:What's this language feature called?这个语言功能叫什么?
【发布时间】:2011-10-27 22:38:20
【问题描述】:
JPanel panel = new JPanel() {
        public void setBackground(Color c) {
           Logger.global.info("setBackground: c=" + c);
           super.setBackground(c);
        }
    };

我只知道我能做到JPanel panel = new JPanel();

为什么有人可以做到以上几点?它叫什么名字?

【问题讨论】:

    标签: java


    【解决方案1】:

    它被称为匿名类

    该代码基本上“即时”创建了JPanel 的子类,但没有给它命名(因此称为anonymous 类)并对其进行实例化。

    相关问题和链接:

    【讨论】:

    • 更准确的匿名内部类。
    • @AlexR,匿名类总是是一个内部类,所以“匿名内部类”有点多余。
    【解决方案2】:

    它是一个匿名类,您可以扩展和定义其他方法或覆盖现有方法。

    请注意,您可以使用同样的方式扩展接口或抽象类。

    【讨论】:

      猜你喜欢
      • 2018-12-19
      • 2013-03-20
      • 2016-11-06
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多