Я выполнил следующую программу, и мне интересно, какой результат я получил, когда выход функции печатается первым, даже если это была переменная, которую я пытался напечатать первым.Почему функция «Переопределенная» вызывает вызов первым?
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, это не то, что он имеет в виду. – Dave