匿名类扩展

tpgth1q7  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(330)

在声明如下所示的匿名类时:
注意,resourcebundle.control是一个具体的类。
从这里截取的片段。

private static void test(Locale locale) {
    ResourceBundle rb = ResourceBundle.getBundle("ResourceBundle", locale,
         new ResourceBundle.Control() {
         @Override
         public List<Locale> getCandidateLocales(String baseName, Locale locale) {
             if (baseName == null)
             throw new NullPointerException();
             if (locale.equals(new Locale("it", "IT"))) {
             return Arrays.asList(
                 locale,
                 Locale.ITALY,
                 Locale.CHINESE ,
                 Locale.ROOT);
             } else if (locale.equals(Locale.GERMANY)) {
             return Arrays.asList(
                 locale.GERMANY,
                 // no Locale.CHINESE here
                 Locale.ROOT);
             }
             return super.getCandidateLocales(baseName, locale);
         }
         });

我基本上看到了钥匙的作用 extends 声明匿名类时不使用它。你认为这是理所当然的吗?如果是,什么时候合适使用 extends 在匿名课堂上?
提前谢谢。

lhcgjxsq

lhcgjxsq1#

何时使用合适 extends 在匿名课堂上?
从未。关键字 extends 适用于命名类,除了扩展类之外,命名类还可以实现接口。相反,匿名类可以实现接口或扩展类,但不能同时实现接口和类。这就是为什么语法中根本没有关键字-只要在一个 new 表达式,并为基类或接口的方法提供实现。

相关问题