Q: What is the maximum number of levels possible in a Multilevel Inheritance in Java?
Solution: There is no limit to the number of levels in a multilevel inheritance chain in Java.
Q: What is the output of the below Java program with Constructors using Inheritance? 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(); } }
Solution: 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.
Q: If a class is not subclassed by any class, then defining a default constructor is not mandatory in Java. State TRUE or FALSE.
Solution: True.
Q: What is the output of the below Java program? 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(); } }
Solution: Notice the use of the keyword "final" before the superclass BUS. You can not subclass a class that is marked final.
Q: A Superclass reference can refer to a Subclass Object without casting. State TRUE or FALSE.
Solution: Yes.
Q: A superclass reference can not be used to invoke a method or variable of the subclass. State TRUE or FALSE.
Solution: Yes. A superclass reference knows only about the methods and properties of the same class but not the subclass.
Q: A subclass object can be used to invoke (call) a method or property of the superclass. State TRUE or FALSE.
Solution: Yes, True.
Q: What is the output of the below Java program on the references of Superclass and Subclass? 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(); } }
Solution: You can only invoke methods of the Superclass using a Superclass reference variable pointing to a Subclass object.
Q: What is the output of the below Java program using Inheritance? 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(); } }
Solution: 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.
You Have Score    | /9 |