Java Tutorial

What is Java


Control Statements


Java Object Class


Java Inheritance


Java Polymorphism


Java Abstraction


Java Encapsulation


Java Array

Java OOPs Misc


Inheritance in Java

Inheritance in java is a mechanism in which one object acquires all the properties and behaviors of parent object.

The idea behind inheritance in java is that you can create new classes that are built upon existing classes. When you inherit from an existing class, you can reuse methods and fields of parent class, and you can add new methods and fields also.

Inheritance represents the IS-A relationship, also known as parent-child relationship.

Why use inheritance in java

  1. For Method Overriding (so runtime polymorphism can be achieved).
  2. For Code Reusability.

Syntax of Java Inheritance

class Parent_class-name{
//methods and fields
}
class Child_class-name extends Parent_class-name
{
//methods and fields
}


The extends keyword indicates that you are making a new class that derives from an existing class. The meaning of "extends" is to increase the functionality.

In the terminology of Java, a class which is inherited is called parent or super class and the new class is called child or subclass.

Java Inheritance Example

As displayed in the above figure, InheritanceJava64bit is the subclass and loan is the superclass. Relationship between two classes is InheritanceJava64bit IS-A loan.It means that InheritanceJava64bit is a type of loan.

package com.ashutosh;
class Loan {
long home_loan=5000000;
}
public class InheritanceJava64bit extends Loan{
int carloan=2000000;
public static void main(String args[]){
InheritanceJava64bit p=new InheritanceJava64bit();
System.out.println("home loan is:"+p.home_loan);
System.out.println("car loanis behalf of home loan:"+p.carloan);
}
}

Output:home loan is:5000000
car loanis behalf of home loan:2000000


In the above example, InheritanceJava64bit object can access the field of own class as well as of Loan class i.e. code reusability.

Types of inheritance in java

On the basis of class, there can be three types of inheritance in java: single, multilevel and hierarchical.

In java programming, multiple and hybrid inheritance is supported through interface only. We will learn about interfaces later.

Note: Multiple inheritance is not supported in java through class.

When a class extends multiple classes i.e. known as multiple inheritance. For Example:

Single Inheritance Example

package com.ashutosh;
class Super_class {
int num = 10; // display method of superclass
public void display() {
System.out.println("This is the display method of superclass");
}
}
public class Sub_classJava64bit extends Super_class {
int num = 5;
// display method of sub class
public void display() {
System.out.println("This is the display method of subclass");
}
public void my_method() {
// Instantiating subclass
Sub_classJava64bit sub = new Sub_classJava64bit();
sub.display();
super.display();
// printing the value of variable num of subclass

System.out.println("value of the variable named num in sub class:"+ sub.num);
}
public static void main(String args[]) {
Sub_classJava64bit obj = new Sub_classJava64bit();
obj.my_method();
}
}

Output:This is the display method of subclass
This is the display method of superclass
value of the variable named num in sub class:5


Multilevel Inheritance Example

package com.ashutosh;
class Loan1{
void documents(){
System.out.println(" basic document");
}
}
class Carloan extends Loan1{
void form(){
System.out.println(" fil the form for car loan");
}
}
class VehicleLoan extends Carloan{
void sumit(){
System.out.println("sumit the document");
}
}
class MultiInheritanceJava64bit{
public static void main(String args[]){
VehicleLoan d=new VehicleLoan();
d.sumit();
d.form();
d.documents();
}
}


Output:sumit the document
fil the form for car loanbr
basic document

Hierarchical Inheritance Example

package com.ashutosh;
class Loan1{
void documents(){
System.out.println(" basic document");
}
}
class Carloan extends Loan1{
void form(){
System.out.println(" fil the form for car loan");
}
}
class VehicleLoan extends Loan1{
void sumit(){
System.out.println("sumit the document");
}
}
class MultiInheritanceJava64bit{
public static void main(String args[]){
VehicleLoan d=new VehicleLoan();
d.sumit();
d.form(); //The method form() is undefined for the type VehicleLoan
d.documents();
}
}


Output: Complie time error

Q) Why multiple inheritance is not supported in java?

To reduce the complexity and simplify the language, multiple inheritance is not supported in java.

Consider a scenario where A, B and C are three classes. The C class inherits A and B classes. If A and B classes have same method and you call it from child class object, there will be ambiguity to call method of A or B class.

Since compile time errors are better than runtime errors, java renders compile time error if you inherit 2 classes. So whether you have same method or different, there will be compile time error now.

package com.ashutosh;
class A{
void msg(){
System.out.println("Hello");
}
}
class B{
void msg(){
System.out.println("Welcome");
}
}
class ThisJava64bit extends A,B{//suppose if it were
public static void main(String args[]){
ThisJava64bit obj=new ThisJava64bit();
obj.msg();//Now which msg() method would be invoked?
}
}


Output:Syntax error, insert "ClassBody" to complete ClassDeclaration

Copyright ©2017 Design& development