java静态成员为什么不能调用非静态成员

如题所述

静态方法是在类里面的,是由类直接调用的.
this指的是调用该方法的对象.
熟读上面两点,然后看;例子
calss A{
static void add(){

this.go();
}
void go(){}
}
如果用A.add(); 我们说add里面的this指的是调用当前add方法的对象,
可是add是由类A直接调用的,不是由对象调用的,所以这里的this是谁?
由于可能有这种情况发生,所以不能在static中用this.
应为你不知道在用的时候,到底有没有创建对象.
super指的是父类对象,同理.你不能保证静态方法被调用时,有创建对象,如果没创建,this,super有指代谁?
温馨提示:答案为网友推荐,仅供参考
相似回答