一直以来我对this
关键字的理解都是当前类,然后今天在查看一个教程的时候因为这个观念,我因为这个观念产生了不一样的观点,然后被人告知this
代表的是’执行者’,对此我使用代码进行demo 测试;
直接上代码
public class SuperClass {
public void test(){
System.out.println("Super");
System.out.println(this.getClass().toString());
}
public void ceshi(){
System.out.println(this.getClass().toString());
}
}
class TestClass extends SuperClass{
@Override
public void test() {
System.out.println(this.getClass().toString());
super.test();
super.ceshi();
}
public static void main(String[] args) {
TestClass testClass = new TestClass();
testClass.test();
}
}
可以看出TestClass
继承SuperClass
并且重写了test()
方法,那么我们运行main()
方法,查询一下结果
class TestClass
Super
class TestClass
class TestClass
我们可以看出来所有的this
在控制台中打印的结果是我们的子类,因为继承的关系,在父类的ceshi()
方法中会被继承到子类中,所以这里打印的super.ceshi()
方法打印的结果是TestClass
我认为很合理,但是在子类重写的test()
方法中,调用父类的被重写的test()
方法确仍然打印出TestClass
,那么就可以判断处我之前的观念确实是存在问题,那么在将他人讲解的执行者概念套上在理解,确实可以解释的通的;那么至少说明我之前理解的概念是不完全正确的
由此我们可以暂时性的将this
的概念理解为执行者,直至出现反驳以及更好的说明