Study and learn Interview MCQ Questions and Answers on Inheritance in Java. You can know about Multilevel and Multiple Inheritances. Attend job interviews easily with these Multiple Choice Questions. You can print these Questions in default mode to conduct exams directly. You can download these MCQs in PDF format by Choosing Print Option first and Save as PDF option next using any Web Browser.
Go through Java Theory Notes on Inheritance before reading these objective questions.
There is no limit to the number of levels in a multilevel inheritance chain in Java.
class Processor { Processor() { System.out.print("Inside Processor() Constructor. "); } } class I3Processor extends Processor { I3Processor() { System.out.print("Inside I3Processor() Constructor. "); } } class I5Processor extends I3Processor { I5Processor() { System.out.print("Inside I5Processor() Constructor. "); } } public class JavaInheritance2 { public static void main(String[] args) { I5Processor i5 = new I5Processor(); } }
The example demonstrates the Invoking of constructors using a Multilevel Inheritance. Always, the default superclass's constructor is invoked. And then, the subclass's constructor is invoked.
Processor <-- I3Processor <-- I5Processor
class Ant { Ant(String name) { System.out.print("Inside Ant(String) Constructor. "); } } class WildAnt extends Ant { WildAnt() { System.out.print("Inside WildAnt() Constructor. "); } } public class Inheritance3 { public static void main(String[] args) { WildAnt wa = new WildAnt(); } }
Compiler throws an error "implicit constructor of Ant class is undefined". Once you define a Constructor with some arguments, the compiler does not add a default constructor with zero arguments. To subclass a class, defining a default constructor is mandatory.
True.
final class Bus { void show() { System.out.print("Generic Bus. "); } } class ElectricBus extends Bus { void show() { System.out.println("Electric Bus. "); } } public class Inheritance4 { public static void main(String[] args) { ElectricBus eb = new ElectricBus(); eb.show(); } }
Notice the use of the keyword "final" before the superclass BUS. You can not subclass a class that is marked final.
Yes.
Yes. A superclass reference knows only about the methods and properties of the same class but not the subclass.
Yes, True.
class Food { void show() { System.out.print("FOOD "); } } class Bread extends Food { void toast() { System.out.print("TOASTED "); } } public class Inheritance5 { public static void main(String[] args) { Food foo = new Food(); foo.show(); Food foo2 = new Bread(); foo2.show(); Bread br = new Bread(); br.toast(); br.show(); } }
You can only invoke methods of the Superclass using a Superclass reference variable pointing to a Subclass object.
class Furniture { void show() { System.out.println("Made of Wood. "); } } class Sofa extends Furniture { void addCushion() { System.out.println("Added. "); } } public class Inheritance6 { public static void main(String[] args) { Furniture fur = new Sofa(); fur.addCushion(); } }
Yes. The compiler throws an error saying "The method addCushion() is undefined for the type Furniture". It means that you can not call a method of subclass using a superclass reference even though it is pointing to a subclass object.