Inheritance:
- Inheritance is the concept of inheriting the members and properties of a base class from the derived class.
- The main advantages of inheritance are,
- Code reusability and fast implementation.
- Reduces the size of the program code.
- There are five types of inheritance:
- Single inheritance
- Multiple inheritance
- Hierarchical inheritance
- Multilevel inheritance
- Hybrid inheritance
- If a subclass inherits a base class, then the member functions and data members of the super class can be accessed by the derived class.
- But the derived class does not inherit the constructors from the base classes; each derived class should contain individual constructors.
- The main advantages of inheritance are,
Method Overriding:
- Overriding is a feature that allows a child class or subclass to specifically implement a method that already provided by one of its parent classes or super classes.
- If the method of the subclass has name, parameters and return type as same as the method in the super class, then the method in the subclass is said to override the method in the super-class.
Instance variable:
- Instance variables are the class members declare outside of any constructor, method or block.
- The instance variables are created when an object of the class is created. And the instance variable destroys when the object is destroyed.
- Zero (“0”) is the default value of an instance variable.
- The instance variables can be accessed only using the objects of the class.
Explanation of Solution
a.
Subclasses of “Employee”:
The subclasses of the class “Employee” are, “HourlyEmployee” and “SalariedEmployee”. The class “HourlyEmployee” represents an employee who have been paid hourly. The class “SalariedEmployee” represents an employee who have been paid monthly.
b.
Superclasses of “Manager”:
The superclass of the class “Manager” is, “SalariedEmployee”. The class “Manager” is an employee who have been paid monthly.
c.
Super classes and subclasses of “SalariedEmployee”:
The superclass of the class “SalariedEmployee” is, “Employee”. And subclass of the class “SalariedEmployee” is “Manager”. These classes possess a multilevel inheritance.
d.
Class that override the method “weeklyPay” of “Employee” class:
The class “HourlyEmployee” and “SalariedEmployee” overrides the method “weeklyPay” of the class “Employee”. This is because, the “weeklyPay()” is specific in “HourlyEmployee” and “SalariedEmployee” as it calculates weekly pay for hourly employees and salaried employees separately. So, this method needs to be overridden in these classes.
e.
Class that override the method “setName” of “Employee” class:
None of the subclasses of “Employee” overrides the method “setName()”.
f.
Instance variables of “HourlyEmployee” object:
The instance variables of the class “HourlyEmployee” are, “name” and “hourlyWage”.
Want to see more full solutions like this?
Chapter 9 Solutions
Big Java, Binder Ready Version: Early Objects
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education