static方法区中为什么不能有this或者super?
想象一下Java中为什么main方法是程序的入口?
public static void main(String[] args)
因为main方法是静态方法,其实带静态的东西优先级都比较高,静态代码块,静态变量,静态常量等等。。。
静态方法也是一样,那么为什么main方法是程序的入口呢?因为他最先被执行啊!当你点击编译按钮时,也就是类加载时静态方法就被加载到了内存区,静态方法被优先执行,而此时对象都没被加载呢。this是当前类的对象,可想而知在静态方法执行的时候它还不存在呢,因此在静态方法中通过this调用其他任何东西都是扯淡。所以当然不能在静态方法区中使用this,super也是同理。