# Set 21

## Multiple Choice Question

QID:
372

Consider the following code:

``````class Base{
private float f = 1.0f;
void setF(float f1){ this.f = f1; }
}class Base2 extends Base{
private float f = 2.0f;        //1
}``````

Which of the following options is a valid example of overriding?

Select 2 options

A. protected void setF(float f1){ this.f = 2*f1; }
B. public void setF(double f1){ this.f = (float) 2*f1; }
C. public void setF(float f1){ this.f = 2*f1; }
D. private void setF(float f1){ this.f = 2*f1; }
E. float setF(float f1){ this.f = 2*f1; return f;}

## Multiple Choice Question

QID:
371

Consider the following classes :

``````class A{
public void mA(){ };
}
class B extends A {
public void mA(){ }
public void mB() { }
}class C extends B {
public void mC(){ }
}
and the following declarations:
A x = new B(); B y = new B(); B z = new C();``````

Which of the following calls are polymorphic calls?

Select 3 options

A. x.mA();
B. x.mB();
C. y.mA();
D. z.mC();
E. z.mB();

## Multiple Choice Question

QID:
370

Which of the following is a legal return type of a method overriding the given method:
public Object myMethod() {...}
(Select the best option.)

Select 1 option

A. Object
B. String
C. Return type can be any object since all objects can be cast to Object.
D. void
E. None of the above.

## Multiple Choice Question

QID:
369

Assume the following declarations:

``````class A{ }
class B extends A{ }
class C extends B{ }
class X{
B getB(){ return new B(); }
}
class Y extends X{              // method declaration here
}``````

Which of the following methods can be inserted in class Y?

Select 2 options

A. public C getB(){ return new B(); }
B. protected B getB(){ return new C(); }
C. C getB(){ return new C(); }
D. A getB(){ return new A(); }

## Multiple Choice Question

QID:
368

Consider the contents of following two files:

//File A.java

``````package a;
public class A{
A(){ }
public void print(){ System.out.println("A"); }
}           //File B.java
package b;
import a.*;
public class B extends A{
B(){ }
public void print(){ System.out.println("B"); }
public static void main(String[] args){
new B();
}
}``````

What will be printed when you try to compile and run class B?

Select 1 option

A. It will print A.
B. It will print B.
C. It will not compile.
D. It will compile but will not run.
E. None of the above.