是否有一个虚拟参数调用,因为在java中有虚拟方法调用?

时间:2015-12-15 22:13:23

标签: java

如果我在Java中有一个子类,并且由于某种原因(父和子)都必须有相同的变量(String department),那么如果我创建一个像这样的实例:

Parent var1 = new Son();
System.out.println(var1.department);

这将打印Parent.department中的值。但是如果我有一个方法getDepartment()被覆盖(在两个类中),那么

System.out.println(var1.getDepartment());

这将打印从Son.getDepartment返回的内容。

那么,为什么虚方法调用不能以相同的方式应用于变量?

为什么有必要按照以下方式进行Downcast,以便从Son Class而不是Parent类中获取变量

Parent var1 = new Son();
Son varSon = (Son)var1;
System.out.println(varSon.department);

现在以这种方式执行将打印Son.department中的值。

0 个答案:

没有答案