2 xiaoshengfdyh xiaoshengfdyh 于 2016.05.06 10:26 提问

子类调用父类方法的问题

父类:

 package com.example.main;

public class Parent {

    public void print(){
        System.out.println(this);
    }

}

子类:

 package com.example.main;


public class Childer extends Parent {

    public static void main(String[] args) {
        new Childer().print();
    }

    @Override
    public void print() {
        super.print();
    };

}

当执行main方法,控制台打印出来的是Child对象的地址:com.example.main.Childer@d3db51

为什么打印的是子类对象的地址,在父类方法中打印this对象不应该打印的是父类对象的吗??

5个回答

CSDNXIAOS
CSDNXIAOS   2016.05.06 10:32

答案就在这里:子类调用父类方法
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

bdmh
bdmh   Ds   Rxr 2016.05.06 10:41

虽然你调用的是父类的方法,但是this指向的是child对象,这既是多态

xiaoshengfdyh
xiaoshengfdyh 这个是多态 请您仔细说说好吗
一年多之前 回复
qq_34750152
qq_34750152   2016.05.06 12:01

这是因为你在子类中调用父类的方法,这时,这个this指的是子类,而不是父类,如果在父类中引用,那么this就是指当前类

ZGZ1002
ZGZ1002   2016.05.06 12:25

你这里的this指的是子类,而不是父类,如果在父类中引用,那么this就是指当前类,
可以参考:http://www.360doc.com/content/14/0609/15/10630456_385121221.shtml

mazegong
mazegong   2016.05.06 15:51

虽然你调用的是父类的方法,但是this指向的是child对象,这既是多态

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!