编程语言
首页 > 编程语言> > 在Java中,this / super关键字是否可以表示除类/枚举之外的任何内容?

在Java中,this / super关键字是否可以表示除类/枚举之外的任何内容?

作者:互联网

我注意到了:

class A {
    ClassB b = new ClassB() { // anonymous class
        /* some expression using this */
    }
}

每当我在匿名类中使用this关键字时,this都会引用封闭的外部类/枚举,而不是匿名类.

这是否意味着这永远不能代表一个匿名类?只是“正常”的类和枚举?

此外,这个或超级代表一个接口?

解决方法:

您关于使用它的说法不正确.当您在匿名类中使用它时,它始终引用匿名类.除非使用OuterClassName.this,否则它永远不会引用封闭的外部类.

this或super永远不能代表接口,因为接口不能有定义的方法.

标签:java,this,super,anonymous-class
来源: https://codeday.me/bug/20190717/1483472.html