First execute a do while loop as we want user to enter at least first character to check whether its upper case or not. If user enters exclamation character then this loop will terminate along with the program.
To check whether the entered character is upper case or not we will be using isupper(ch) method defined in cctype library.
If the character is upper case then if condition will show Ok by printing it using cout and this program will show nothing if the character is not upper case.
In the given java program the main class test is defined. Inside the class, class b instance is created. In the next line, two-class are defined that is class A and class B and class B inherit class A.
In both classes we define a constructor and a method setI(). This method calculates the value that is passed in function and This class uses Overriding concept. In the given question other options are wrong that can be described as:
In option A, Class B inherits class A and when class b object is created it is automatically called.
In option C and option D, The constructor of class A is called but it displays 60, because of the constructor A call a function, that is setI() and passes value 20 parameter and because of using method overriding it display 60.