Java中一个类顶用this 但是调试时发现this不是指向本类的对象,而是指向子类的对象 这是什么原因
Java中一个类中用this 但是调试时发现this不是指向本类的对象,而是指向子类的对象 这是什么原因
什么情况下会产生这种现象
------解决思路----------------------
多态
------解决思路----------------------
多态== 父类引用指向子类对象(+继承+重写),即你说的这个情况。
------解决思路----------------------
楼上已经说了,是多态,给你配一段代码,可能会比较清楚一些。希望对你有用。
什么情况下会产生这种现象
------解决思路----------------------
多态
------解决思路----------------------
多态== 父类引用指向子类对象(+继承+重写),即你说的这个情况。
------解决思路----------------------
楼上已经说了,是多态,给你配一段代码,可能会比较清楚一些。希望对你有用。
/**
* Created by cashlu on 14/11/16.
*/
//Father类为父类,有一个成员变量name,构造器函数中给name赋值为Father。
//Father类中还有一个方法printName(),返回对象的name属性。
public class Father {
String name;
public Father(){
name = "Father";
}
public String printName(){
return this.name;
}
public static void main(String[] args) {
//下面这一行就是所谓的“父类引用指向子类对象”,这是JAVA多态的特性。
Father t = new Son();
//输出对象t的name属性,结果为Son,t所指向的对象,实际上是son对象
System.out.println(t.printName());
System.out.println(t.getClass());
}
}
//Son是子类,继承了父类的printName()方法,构造器重写了,将name属性赋值为Son
class Son extends Father {
public Son(){
name = "Son";
}
}