I am a bit confused with the output given for this code. Can anyone help me?
class Alpha{
public void foo(String.. agr)
{ Sysout("Alpha:foo");}
public void bar(String a)
{ Sysout("Alpha:bar");}
}
public class Beta extends Alpha{
public void foo(String.. agr)
{ Sysout("Beta:foo");}
public void bar(String a)
{ Sysout("Beta:bar");}
public static void main(String argv[]){
Alpha a=new Beta();
Beta b = (Beta)a;
a.foo(test);b.foo(test);
a.bar(test);b.bar(test);
}
}
I felt the ans should be Alpha:foo Beta:foo Alpha:bar Beta:bar
but the ans given was
Alpha:foo Beta:foo Beta:bar Beta:bar
Am i going wrong somewhere?