Reading:  

Quick introduction to Object oriented concepts in Java - Part 2 of series


Inheritance

This tutorial is a follow up from the part 1, where we introduced Java Language.

Inheritance

Inheritance is the major block in object oriented programming language has it helps in hierarchical classification. Inheritance is a process wherein a new object or class is derived from an existing objects or class. The class derived from another class is called as subclass whereas class from which a subclass derived is called as a superclass. Therefore A subclass is special version of superclass which as methods and variables of it along with added its own unique elements.  A subclass has only one superclass whereas a superclass will have one or more subclasses

In the above figure CAR class is a Super Class which is extended to Sub Class like Compact Car, Mid-Size Car and Large Car.

We can inherit a definition of class into another class with using extend keyword. Below is syntax for it.

class subclass-name extends superclass-name {
//  // A class body
}

Below is the simple code which explains inheritance. The Program has creates a SuperClass called X and a SubClass called Y. We are using extends keyword to a create subclass of X.

// Create superclass.
class X {
	int a, b;
	void showab() {
		System.out.println("a and b: " + a + " " + b);
	}
}
// Create subclass by extending class X.
class Y extends X {
	int c;
	void showc() {
		System.out.println("c: " + c);
	}
	void sum() {
		System.out.println("a+b+c: " + (a + b + c));
	}
}
class SimpleExampleInheritance {
	public static void main(String args[]) {
		XsuperClassObj = new X();
		YsubClassObj = new Y();

		superClassObj.a = 5;
		superClassObj.b = 10;

		System.out.println("ContentsuperClassOb: ");
		superClassObj.showab();
		System.out.println();
		/* public members of  superclass can be accessed by subclass */
		subClassObj.a = 1;
		subClassObj.b = 2;
		subClassObj.c = 3;
		System.out.println("Contents subClassOb: ");
		subClassObj.showab();
		subClassObj.showc();
		System.out.println();
		System.out.println("Sum of a, b and c in subClassObj:");
		subClassObj.sum();
	}
}

 

The output: 

Contents of superClassOb:
a and b: 510
Contents of subClassOb:
a and b: 1 2
c: 3
Sum of a, b and c in subClassOb:
a+b+c: 6

 

In the above example the subclass Y has all the member of its SuperClass X. So the subClassObj can access a and b and also method showab(). Even though X is a superclass for Y it is completely independent and  stand-alone class. 

Things not possible with java class Inheritance?

  • Private members of superclass are not inherited by subclass and can be accessed indirectly.
  • Members having default accessibility in superclass are not inherited by subclasses in other packages as these members only are accessible by names in subclasses within same package as superclass.
  • Since initialize and constructors blocks are not members of class they are not inherited by subclass.
  • A subclass can extend only a one superclass.

Description

This tutorial will introduce you to Object oriented concepts in Java. Basic definitions and learning with code examples.

This tutorial has subdivided into 7 parts as listed below

  1. Understanding Inheritance    
  2. Understanding Overrides
  3. Understanding Polymorphism
  4. Understanding Abstraction
  5. Understanding Encapsulation
  6. Understanding Interfaces
  7. Understanding Packages

Let us know if you found any error in this tutorial. Your feedback is welcome as always.



Audience

Students seeking a quick overview on Java Programming language and its Object oriented features.

Learning Objectives

Learn Object Oriented concepts in Java language.

Author: Subject Coach
Added on: 10th Mar 2015

You must be logged in as Student to ask a Question.

None just yet!