Reusability is a common concept of any programming language. It would be great to reuse some code during offshore java development that has been already designed by some programmer. Java strongly follows the concept of reusability. Write the code for one class, test the code and it can be used by several programmers successfully. The process of driving a new class from the existing one is called inheritance. In technical terms, the old class is termed as base class and new one is termed as derived class. New class may inherit some or all properties of the old class. A class also has the capability of inheriting properties or traits from more than one class.
Single inheritance - Only one base class and one derived class
Multiple inheritance - Multiple base class and one derived class
Hierarchical inheritance - Multiple derived class and one base class
Multilevel inheritance - Driving new class from existing derived class
Hybrid Inheritance - Joining two or more types of inheritance together
Here we have added some pictures to make the learning process easier for you. Arrow directions will help you in determining direction of inheritance.
Defining Derived classes
A derived class is always defined by determining its relationship with base class with its own personal details.
The visibility mode may be public or private according to programmer’s requirement. If you are not defining any visibility - mode then it is set private by default. Visibility -mode states that properties of base class are derived either publicly or privately.
When a derived class inheriting base class privately then public members of old class becomes private members of new class and thereof public members of old class can only be accessed by member function of new class. They are not accessible to the objects of new class. Don’t forget that public members of a class can be accessed by its own objects using dot (.) operator. As a result, base class members are not accessible to derived class objects.
At the other side, when a derived class inheriting base class privately then public members of old class becomes public members of new class and thereof they are accessible to the objects of new class. In the both cases, it is not possible to inherit the private members of a base class or we can say it is not possible to access private members of any base class in either situation.
Virtual Base Classes
Consider a situation where we have to use all three types of inheritance namely multilevel, multiple, and hierarchical. In this case, few members of a particular class are inherited twice. This increases the ambiguity that should be avoided. Virtual base class strictly prohibits ambiguity, regardless of how many inheritance paths exist between the virtual base class and a derived class. To make any base class virtual, you just have to add virtual keyword in front of it.
At the end we conclude that by using inheritance, we can add certain data elements to our program. Further, we can extend the class by adding our own data elements to improve the credibility and functionality of a program. Extending classes in Java application development using inheritance is taken wonderful tool for incremental program development. Source: http://tech.pro/blog/2548/using-inheritance-extended-classes-offshore-java-development