静态方法中问什么不能使用this、super关键字。

  • 感性方面

  首先区分类和对象,对象是类的一个实例。也就是对象会有多个而类只有一个。

  1. 静态方法是类中拥有的。
  2. this代表当前对象。
  3. super代表当前对象的父类对象。

可以看出来静态方法只有一个,而this、super是多个。

  • 理性方面

内存加载顺序是不同的,内存先加载类再此同时会将静态方法加载。而此时对象没有产生,所有会有空指针。

public class A {


	private String a;


	public A() {
		System.out.println("创建对象");
	}
	
	public String getA() {
		return a;
	}


	public void setA(String a) {
		this.a = a;
	}
	
	public void print() {
		System.out.println("打印方法执行");
	}
}
public class ServerController extends A{
	public static void main(String[] args) {
		A a = new A();
		a.print();
	}
	public static void p() {
		super.print();
	}
}

如上述代码,加载ServerController类时main、p方法被加载。而A的类已经被加载了,但是A的对象没有被创建。所以super.print();会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值