41.
What will be the output?
class One{
      final int a = 15;
}

class Two extends One{
      final int a = 20;
}

public class Test extends Two{
      final int a = 30;

      public static void main(String args[]){
            Test t = new One();
            System.out.print(t.a);
      }
}

42.
What will be the output?
class A{
      int i = 10;
      public void printValue(){
            System.out.print("Value-A");
      }
}

class B extends A{
      int i = 12;
      public void printValue(){
            System.out.print("Value-B");
      }
}

public class Test{
      public static void main(String args[]){
            A a = new B();
            a.printValue();
            System.out.print(a.i);
      }
}

43.
What will be the result after compiling this code?
class SuperClass{
      public int doIt(String str, Integer... data)throws Exception{
            String signature = "(String, Integer[])";
            System.out.println(str + " " + signature);
            return 1;
      }
}

public class Test extends SuperClass{
      public int doIt(String str, Integer... data){
            String signature = "(String, Integer[])";
            System.out.println("Overridden: " + str + " " +signature);
            return 0;
      }

      public static void main(String... args){
            SuperClass sb = new Test();
            sb.doIt("hello", 3);
      }
}

44.
class A{
      A(String s){}

      A(){}
}

class B extends A{
      B(){}
      B(String s){
            super(s);
      }
      void test(){
            // insert code here
      }
}

Which of the below code can be insert at line 7 to make clean compilation ?

45.
Determine output:
class A{
      public void printValue(){
            System.out.println("Value-A");
      }
}
class B extends A{
      public void printNameB(){
            System.out.println("Name-B");
      }
}
class C extends A{
      public void printNameC(){
            System.out.println("Name-C");
      }
}

public class Test{
      public static void main (String[] args){
            B b = new B();
            C c = new C();
            newPrint(b);
            newPrint(c);
      }
      public static void newPrint(A a){
            a.printValue();
      }
 }

46.
Determine output:
class A{
      public void printName(){
            System.out.println("Name-A");
      }
}
class B extends A{
      public void printName(){
            System.out.println("Name-B");
      }
}
class C extends A{
      public void printName(){
            System.out.println("Name-C");
      }
}

public class Test{
      public static void main (String[] args){
           B b = new B();
           C c = new C();
            b = c;
            newPrint(b);
      }
      public static void newPrint(A a){
            a.printName();
      }
}

47.
What is the output for the below code?
class A{
      private void printName(){
            System.out.println("Value-A");
      }
}
class B extends A{
      public void printName(){
            System.out.println("Name-B");
      }
}
public class Test{
      public static void main (String[] args){
            B b = new B();
            b.printName();
      }
}

48.
What will be the result of compiling and running the given code?
class A{
      int b=10;
      private A(){
            this.b=7;
      }
      int f(){
            return b;
      }
}
class B extends A{
      int b;
}
public class Test{
      public static void main(String[] args){
            A a = new B();
            System.out.println(a.f());
      }
}

49.
What will be the result of compiling and executing the following program code?
class Vehicle{
      public void printSound(){
            System.out.print("vehicle");
      }
}
class Car extends Vehicle{
      public void printSound(){
            System.out.print("car");
      }
}
class Bike extends Vehicle{
      public void printSound(){
            System.out.print("bike");
      }
}
public class Test{
      public static void main(String[] args){
            Vehicle v = new Car();
            Bike b = (Bike) v;
        
            v.printSound();
            b.printSound();
      }
}

50.
Determine output:
class Small{
      public Small(){
            System.out.print("a ");
      }
}
class Small2  extends Small{
      public Small2(){
            System.out.print("b ");
      }
}
class Small3 extends Small2{
      public Small3(){
            System.out.print("c ");
      }
}
public class Test{     
      public static void main(String args[]){
            new Small3();
      }
}