A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Fu
{
        private int a = 1;
        public int get(){
                return this.a;
        }
}
class Zi extends Fu
{
        int a = 2;
}


class Test
{
        public static void main(String[] args)
        {
                Zi z = new Zi();
                System.out.println(z.get());
        }
}


输出结果是1   不是谁调用方法this就是指谁吗    应该输出2呀

5 个回复

倒序浏览
= =总觉得这种问题在真实做项目时候 就不会这么设计 知道有这么回事就行了吧
回复 使用道具 举报
你并没有重写父类方法
回复 使用道具 举报
get()是父类的方法  那个里面的this调用的就是自己a  除非重写get方法
回复 使用道具 举报
子类继承父类,子类调用get()时,因为子类中并没有该方法,会去父类中找,在父类中找到get()方法,就近原则,返回的就是a=1,
如果想打印a=2,在子类中重写父类的get()就可以了,也就是在子类中加入以下方法:
public int get(){
                return a;
回复 使用道具 举报
来学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马