【发布时间】:2016-03-01 15:48:14
【问题描述】:
我执行了以下程序,我很好奇我得到的输出是函数输出首先被打印出来的,即使它是我首先尝试打印的变量。
class Baap{
public int h = 4;
public int getH(){
System.out.println("Baap "+h); return h;
}
}
public class Beta extends Baap{
public int h = 44;
public int getH(){
System.out.println("Beta "+h); return h;
}
public static void main(String args[]){
Baap b = new Beta();
System.out.println(b.h+" "+b.getH());
Beta bb = (Beta)b;
System.out.println(bb.h+" "+bb.getH());
}
}
输出如下
Beta 44
4 44
Beta 44
44 44
谁能帮我理解为什么功能块首先被执行?
【问题讨论】:
-
@Nambari,他指的不是这个。
标签: java inheritance polymorphism