Object oriented
pogroming java
Inheritance in java
Made by : yash jain
What is inheritance ????
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
▪ For Method Overriding (so runtime polymorphism can be achieved).
▪ For Code Reusability.
Syntax of Java Inheritance
class Subclass-name extends Superclass-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 figure,
Programmer is the subclass and
Employee is the superclass.
• Relationship between two classes
is Programmer IS-A Employee. It
means that Programmer is a type of
Employee
Example of simple inheritance
class Employee
{
float salary=40000;
}
class Programmer extends Employee
{
int bonus=10000;
public static void main(String args[]){
Programmer p=new Programmer();
System.out.println("Programmer salary is:"+p.salary);
System.out.println("Bonus of Programmer is:"+p.bonus);
}
}
Types of inheritance in java
1. Single inheritance
2. Multiline inheritance
3. Hierarchical inheritance
4. Multiple inheritance
5. Hybrid inheritance
Can be implement by
using class and object
Can be implement
using interface
Single inheritance
class Animal
{
void eat(){System.out.println("eating...");}
}
class Dog extendsAnimal{
void bark()
{
System.out.println("barking...");
}
}
classTestInheritance
{
public static void main(String args[]){
Dog d=new Dog();
d.bark();
d.eat();
}
}
Multilevel inheritance
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...");
}
}
classTestInheritance2
{
public static void main(String args[]){
BabyDog d=new BabyDog();
d.weep();
d.bark();
d.eat();
}}
Hierarchical Inheritance
class Animal
{
void eat()
{
System.out.println("eating...");
}
}
class Dog extends Animal
{
void bark()
{
System.out.println("barking...");
}
}
class Cat extendsAnimal
{
void meow()
{
System.out.println("meowing...");
}
}
classTestInheritance3
{
public static void main(String args[])
{
Cat c=new Cat();
c.meow();
c.eat();
//c.bark();
//C.T.Error
}
}
 Why multiple inheritance is not
supported in java?
To reduce the complexity and simplify the language, multiple inheritance is not
supported in java.
Example:
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 ofA 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.
class A
{
void msg(){System.out.println("Hello");}
}
class B
{
void msg(){System.out.println("Welcome");}
}
class C extends A,B
{//suppose if it were
Public Static void main(String args[])
{
C obj=new C();
obj.msg();//Now which msg() method would be invoked?
}
}
Thank you !!