Java中关于'this' 的概念测试

一直以来我对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的概念理解为执行者,直至出现反驳以及更好的说明

猜你喜欢

转载自www.cnblogs.com/ha0zi/p/10419350.html