OCA Java SE 8 Mock Exam 2 - OCA Mock Question 34


Which of the following lines of code can be individually inserted at //INSERT CODE HERE so that the output of the code is as follows:

class Shape { 
    void print() { 
        System.out.println("Shape - A"); 
class Rectangle extends Shape { 
    void print() { 
        System.out.println("Rectangle - B"); 
class Main { 
    Shape a = new Shape(); 

Shape - A
Rectangle - B
  1. Shape b = new Shape();
  2. Shape b = new Rectangle();
  3. Rectangle b = new Rectangle();
  4. Rectangle b = new Shape();
  5. Shape b = ((Rectangle)new Shape());
  6. Rectangle b = ((Rectangle)new Shape());


B, C


A is incorrect. This code will compile, but because both the reference variable and object are of type Shape.

D is incorrect. This code will not compile. You can't assign an object of a base class to a reference variable of a derived class.

E is incorrect. This line of code will compile successfully, but it will fail at runtime with a ClassCastException.

An object of a base class can't be cast to an object of its derived class.

F is incorrect. The expression ((Rectangle)new Shape()) is evaluated before it can be assigned to a reference variable of type Rectangle.