【发布时间】:2015-03-23 18:01:14
【问题描述】:
大家好,我有与 Java 中的“this”关键字相关的问题。 (1) 假设计算机从机器扩展,我们有当前代码:
public class Machine {
private String name = "Machine";
public void test()
{
System.out.println(this.name);
}
public void test2()
{
System.out.println(this);
}
}
public class Computer extends Machine {
public void test()
{
System.out.println(this);
}
}
public class main {
public static void main(String[] args) {
Machine c = new Computer();
c.test();
c.test2();
}
}
它的印刷品:
Computer@1db9742
Computer@1db9742
意思是Computer中的“this”指的是Computer,这是我理解的但是Machine中的“this”也指的是Computer,这是我不理解的。
这是怎么发生的,为什么..???
(2)
那么如果Machine m = new Computer() 这是真的吗?
所以对于所有回答我的人,我可以理解这与 new 或我们所说的 Type 指向的内容有关......?
【问题讨论】:
-
你预计会发生什么?
-
要添加到@AndyTurner 的答案,我建议您在教科书中阅读继承,以获得有关此主题的完整论文。
-
“计算机”中的“this”不是指“计算机”。它指的是Computer@1db9742(或“Machine c”,您声明的变量),一个对象。不是班级。
标签: java inheritance reference this