一尘不染

为什么不能在(非静态)内部类中使用静态方法?

java

为什么我们不能在非静态内部类中使用静态方法?

如果我将内部类设为静态,则可以工作。为什么?


阅读 393

收藏
2020-03-13

共1个答案

一尘不染

因为内部类的实例与外部类的实例隐式关联,所以它本身不能定义任何静态方法。由于静态嵌套类无法直接引用其封闭类中定义的实例变量或方法,因此只能通过对象引用使用它们,因此在静态嵌套类中声明静态方法是安全的。

2020-03-13