Inheritance in Java is a mechanism in which one object acquires all the properties and behaviors of a parent object. It is an important part of OOPs (Object Oriented programming system).
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 the parent class. Moreover, you can add new methods and fields in your current class also.
Inheritance represents the IS-A relationship which is also known as a parent-child relationship.
Why use inheritance in java
- For Method Overriding (so runtime polymorphism can be achieved).
- For Code Reusability.
Terms used in Inheritance
- Class: A class is a group of objects which have common properties. It is a template or blueprint from which objects are created.
- Sub Class/Child Class: Subclass is a class which inherits the other class. It is also called a derived class, extended class, or child class.
- Super Class/Parent Class: Superclass is the class from where a subclass inherits the features. It is also called a base class or a parent class.
- Reusability: As the name specifies, reusability is a mechanism which facilitates you to reuse the fields and methods of the existing class when you create a new class. You can use the same fields and methods already defined in the previous class.
Types of inheritance in javaOn 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.


1).Single Inheritance
Example:-
class Animal
{
void eat()
{
System.out.println(“eating…”);
}
}
class Dog extends Animal
{
void bark()
{System.out.println(“barking…”);
}
}
class TestInheritance
{
public static void main(String args[])
{
Dog d=new Dog();
d.bark();
d.eat();
}}
2).Multilevel Inheritance
Example:-
class Animal
{
void eat()
{
System.out.println(“eating…”);
}
}
class Dog extends Animal
{
void bark()
{
System.out.println(“barking…”);
}
}
class BabyDog extends Dog
{
void weep(){System.out.println(“weeping…”);
}
}
class TestInheritance2
{
public static void main(String args[])
{
BabyDog d=new BabyDog();
d.weep();
d.bark();
d.eat();
}
}
3)Hierarchical Inheritance Example
class Animal
{
void eat()
{
System.out.println(“eating…”);
}
}
class Dog extends Animal
{
void bark(){System.out.println(“barking…”);
}
}
class Cat extends Animal
{
void meow()
{
System.out.println(“meowing…”);
}
}
class TestInheritance3
{
public static void main(String args[])
{
Cat c=new Cat();
c.meow();
c.eat();
//c.bark();//C.T.Error
}
}
4).Multiple Inheritance in Java
When one class extends more than one classes then this is called multiple inheritance. For example: Class C extends class A and B then this type of inheritance is known as multiple inheritance. Java doesn’t allow multiple inheritance.
Why Java doesn’t support multiple inheritance?
C++ , Common lisp and few other languages supports multiple inheritance while java doesn’t support it. Java doesn’t allow multiple inheritance to avoid the ambiguity caused by it. One of the example of such problem is the diamond problem that occurs in multiple inheritance.
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 the same method and you call it from child class object, there will be ambiguity to call the method of A or B class.
GrandParent / \ / \ Parent1 Parent2 \ / \ / Test
Solution:-
Multiple inheritance in java can be implemented by the use of interfaces.
What is Interface in java:-
Interfaces are declared using the interface
keyword, and may only contain method signature and constant declarations (variable declarations that are declared to be both static
and final
).
default
and static
methods may have implementation in the interface
definition.
Interfaces cannot be instantiated, but rather are implemented. A class that implements an interface must implement all of the non-default methods described in the interface, or be an abstract class.
Super Keyword in java
The super keyword in Java is a reference variable which is used to refer immediate parent class object.
Example:-
interface PI1 { // default method default void show() { System.out.println("Default PI1"); } } interface PI2 { // Default method default void show() { System.out.println("Default PI2"); } } // Implementation class code class Multipleinheritance implements PI1, PI2 { // Overriding default show method public void show() { // use super keyword to call the show // method of PI1 interface PI1.super.show(); // use super keyword to call the show // method of PI2 interface PI2.super.show(); } public static void main(String args[]) { Multipleinheritance d = new Multipleinheritance(); d.show(); } }
No comments:
Post a Comment