Today's Offer - Java Certification Training - Enroll at Flat 10% Off.

- Java Blogs -

What is Inheritance in Java? Different Types of Inheritance in Java

Inheritance is the most powerful and natural mechanism to structure and organize the software program. It explains how classes inherit behavior or states from superclasses. It will also explain how one class can be derived from another with the help of simple syntax as suggested by the Java programming language. Before we dive deep into the topic, let us first discuss what is Java, its history, and the features. Then we will discuss the inheritance in Java, its different types, and applications.

What is Java?

Java is the OOPs-based platform-independent language that is useful to create the most powerful and secure apps that may run on a single computer or it will be distributed among different servers or clients across the network. The simplicity and portability features of Java make sure that enterprises would not face any problem while designing apps related to hardware, network, or the operating system.

Introduction of Java

Java was started as the Oak programming language in 1991 by the James Gosling. The objective of the programming language was to implement a virtual machine that has a familiar notation like C and C++ but highly simpler as compared to previous programming languages.

The first version of Java was released by Sun Microsystem in 1995 with the famous tagline “Write once, run anywhere” and it becomes more popular due to its platform-compatibility features. It became more popular when it was released as the open source programming language for Java 7 version in 2006.

JVM and JRE in Java

JVM or Java Virtual Machine is the implementation product that helps in executing programs like a real machine only. Because of JVM only, the computer programs can be executed over multiple operating systems like Linux, Unix, or Windows etc. Further, there is one Java compiler to convert the program into bytecodes that are easy to execute.

JRE or Java Runtime Environment is made up of JVM, class libraries, and necessary functions to initiate the Java programs. Basically, it provides a runtime environment to execute or run the Java programs.

What is Inheritance in Java?

Inheritance is an integral pillar of object-oriented programming and a popular mechanism where one class is allowed to inherit the properties of another class through fields or methods. Here, are some important methodologies related to the concept.

  • Super Class: This is the major class whose features are inherited to other classes.  
  • Sub Class: This is the child class which inherits the features of a superclass or the parent class. The other name for the subclass is extended or derived class. A subclass has its personal methods and parameters in addition to the attributes of a superclass.
  • Reusability: Inheritance in Java is based on reusability concept. Take an example of the subclass that is reusing the methods and fields of the superclass and deriving a new class from the existing ones. With this functionality, a much pressure is reduced on developers and the overall deployment work is speeded up.

In practice, inheritance and polymorphism both concepts are used together to achieve better performance and readability of the code. To use inheritance in Java, the extends keyword is used. The syntax is given below-

Read: Difference between ArrayList & LinkedList

Inheritance in Java

Different types of inheritance in Java

Here are different types of inheritance that are support by the Java programming language –

1). Single Inheritance

When one subclass inherits the features of one superclass, this would be the case of Single inheritance.  In the example given below, the base class A will be inherited by a subclass B. Inheritance in Java

2). Multi-level Inheritance

In the case of multi-level inheritance, a subclass that is inheriting one parent class will also act as the base class for another class. Based on the example given below, B is the subclass that is inhering the features of parent class A and acting as the base class for C subclass. Inheritance in Java

3). Hierarchical Inheritance

In the case of Hierarchical Inheritance, there is one base class for multiple subclasses. For the example given below, A is the base class that is inherited by multiple subclasses B, C, and D. Inheritance in Java

4). Multiple Inheritance

In the case of multiple inheritances, there could be more than one parent classes for a given subclass. For the example given below, C is the subclass having more than one parent class i.e. A and the B. Multiple inheritances are not supported in Java through classes but this is possible through interfaces and the default implementation of methods in Java 8 and the later versions.

If two parent class has similar methods with the same signature, the default method is used to override the other. If we remove the implementation of default methods from the subclass then it will show the compiler error again.

Inheritance in Java

Read: Java skills – An attractive opportunity of employment for youth

5). Hybrid Inheritance

This is mix or two or more types of inheritance discussed earlier. Like the multiple inheritances, hybrid inheritance is also not supported in Java through classes but you could make it possible again through interfaces.

Inheritance in Java

A few interesting facts about inheritance in Java

  • The object class has no superclass and every class could have only one and one superclass. This is also named as the Single Inheritance. If the explicit superclass is missing then every class is an example of the implicit subclass of the object class.
  • The superclass is only one but it could have multiple subclasses derived from the same. Interestingly Java does not support the concept of multiple inheritances with classes. At the same time, multiple inheritance are supported by using interfaces in Java.
  • A subclass has the capability to access all features from the base class like field, methods, or nested class etc. However, this is possible to define the attributes either private or public. This is not possible to access the private member of a class in Java. On the other hand, if methods are defined as either public or protected then they can be quickly accessed by the subclass.
  • When there “Is-A” relationship exists between two classes, the inheritance concept is used. It can be described with extends keyword in coding.

How powerful could a subclass be?

For the sub class, we can inherit members, hide them, replace them or supplement them with new members as per the convenience. This is possible to use the inherited members directly like you are using the other fields of a class. Apart from the inherited fields, you could always add the new attributes to make it even more powerful.

This is possible to define the new instance method for the subclass that would be given the same signature as the superclass. In this case, method overriding concept will be applicable. We could define new subclass constructors that can be invoked from the superclass with the keyword Super.

Why are multiple inheritances not supported in Java?

As the name suggests, this is a popular Oops concept where properties of more than one parent class can be inherited. There comes an issue when a method has the same signature in both parent class and the subclass. When a method call request is put, java compiler gets confused which method should be invoked actually either of parent class or subclass.

In the final output, there would be a compiler error that needs to resolve quickly. For this reason, Java does not support the concept of multiple inheritances of classes which is quite complex. There are other techniques too where we need the concept of multiple inheritances, so better keep the things simple and straightforward in Java.

In Java 8, multiple inheritances were made possible through interfaces and default methods that have the capability to provide the default implementation of methods. If two parent class has similar methods with the same signature, the default method is used to override the other. If we remove the implementation of default methods from the subclass then it will show the compiler error again.

How to use the final keyword with inheritance in Java?

The ‘final’ keyword in Java is used to restrict some functionalities. This is possible to declare classes, methods, or variables with the help of the ‘final’ keyword. In case of the inheritance, we should always declare methods using the final keyword if the implementation is same throughout the derived class. However, this is not mandatory to use the final keyword with base class only but you can use it with subclass too that is supposed to be extended by any other class.

Read: What Is Spring Framework? Spring Tutorial Guide for Beginner

At the particular time, when some class is declared as the final then it could not be inherited anymore. Here is given the example below with syntax –

Inheritance in Java

When some class is declared final then its members will also follow the same culture and cannot be accessed anymore. We cannot declare the same class as abstract and final both because the abstract class is incomplete in itself and relies on other class for implementation.  Further, if some method is declared as final then it could not be overridden by another and it is taken as the example of static binding. Here, you can see that final keyword can be used in different perspectives in case of inheritance in Java.

Related Post

  1. What is A Java Constructor?
  2. Declare String Array in Java
  3. Java Collections
  4. Java String Functions
  5. Serialization of Java Objects

Final words:

With this detailed discussion, you must be sure on all possible aspects of inheritance, its types and how it should be used with your application. A depth understanding of the OOPs concept makes you more capable of writing a powerful program. TO know more on Java and related OOPs concepts, you should join Java certification program at JanBask Training right away and explore the endless jobs opportunities for your career.


    Janbask Training

    JanBask Training is a leading Global Online Training Provider through Live Sessions. The Live classes provide a blended approach of hands on experience along with theoretical knowledge which is driven by certified professionals.


Trending Courses

AWS

  • AWS & Fundamentals of Linux
  • Amazon Simple Storage Service
  • Elastic Compute Cloud
  • Databases Overview & Amazon Route 53

Upcoming Class

1 day 14 Nov 2019

DevOps

  • Intro to DevOps
  • GIT and Maven
  • Jenkins & Ansible
  • Docker and Cloud Computing

Upcoming Class

2 days 15 Nov 2019

Data Science

  • Data Science Introduction
  • Hadoop and Spark Overview
  • Python & Intro to R Programming
  • Machine Learning

Upcoming Class

2 days 15 Nov 2019

Hadoop

  • Architecture, HDFS & MapReduce
  • Unix Shell & Apache Pig Installation
  • HIVE Installation & User-Defined Functions
  • SQOOP & Hbase Installation

Upcoming Class

3 days 16 Nov 2019

Salesforce

  • Salesforce Configuration Introduction
  • Security & Automation Process
  • Sales & Service Cloud
  • Apex Programming, SOQL & SOSL

Upcoming Class

1 day 14 Nov 2019

QA

  • Introduction and Software Testing
  • Software Test Life Cycle
  • Automation Testing and API Testing
  • Selenium framework development using Testing

Upcoming Class

-1 day 12 Nov 2019

Business Analyst

  • BA & Stakeholders Overview
  • BPMN, Requirement Elicitation
  • BA Tools & Design Documents
  • Enterprise Analysis, Agile & Scrum

Upcoming Class

2 days 15 Nov 2019

SQL Server

  • Introduction & Database Query
  • Programming, Indexes & System Functions
  • SSIS Package Development Procedures
  • SSRS Report Design

Upcoming Class

6 days 19 Nov 2019

Comments

Search Posts

Reset

Receive Latest Materials and Offers on Java Course

Interviews