继承关系里面this到底代表的是谁?

1. 代码

package com.xrluo.type09;

public class Test3
{
    public static void main(String[] args)
    {
        System.out.println("new的子类============================================================>");
        Zi zi = new Zi();
        zi.show2();

        System.out.println("new 的父类===========================================================>");
        Fu fu = new Fu();
        fu.show2();
    }
}

class Fu
{
    Fu()
    {
        System.out.println(this);
        show();
    }

    void show()
    {
        System.out.println("fu.show被调用...........");
        System.out.println(this);
    }

    void show2()
    {
        System.out.println(this);
        show();
    }
}


class Zi extends Fu
{
    int num = 8;

    Zi()
    {
        System.out.println("num数值:" + num);
    }

    void show()
    {
        System.out.println("zi.show被调用............." + num);
    }
}

2. 输出结果


new的子类============================================================>
com.xrluo.type09.Zi@6e0be858
zi.show被调用.............0
num数值:8
com.xrluo.type09.Zi@6e0be858
zi.show被调用.............8
new 的父类===========================================================>
com.xrluo.type09.Fu@61bbe9ba
fu.show被调用...........
com.xrluo.type09.Fu@61bbe9ba
com.xrluo.type09.Fu@61bbe9ba
fu.show被调用...........
com.xrluo.type09.Fu@61bbe9ba

Process finished with exit code 0

3. 总结

类里面的this关键字,并不代表当前所在的类,代表的是实例对象的类

  1. new的是子类的话,this代表的是子类对象.
  2. new的是本类的话,this代表的就是当前所在类.

氷落
7 声望1 粉丝

一个年过30,苦苦挣扎的程序员......