Guys i am currently preparing for OCA 1Z0 -808 exam and i came across the below code which Outputs
Output :
Base
Dervied
Dervied
But what i expected was
Base
Base
Dervied
Could someone explain the logic of this. Thanks in advance guys!!
class Base
{
public void Print()
{System.out.println("Base");
}
}
class Derived extends Base
{
public void Print()
{
System.out.println("Dervied");
}
}
class mainn
{
public static void DoPrint (Base o)
{
o.Print();
}
public static void main(
String[] args)
{
Base x = new Base();
Base y = new Derived();
Derived z = new Derived();
DoPrint(x);
DoPrint(y);
DoPrint(z);
}
}