An important feature of object-oriented programs is inheritance—the
ability to create classes that share the attributes and methods of
existing classes, but with more specific features. Inheritance is mainly
used for code reusability. So you are making use of already written the
classes and further extending on that. That why we discussed the code
reusability the concept. In general one line definition, we can tell
that deriving a new class from existing class, it’s called as
Inheritance. You can look into the following example for inheritance
concept.
The process by which one class acquires the properties(data members) and functionalities(methods) of another class is called inheritance.
The aim of inheritance is to provide the reusability of code so that a
class has to write only the unique features and rest of the common
properties and functionalities can be extended from the another class.
Child Class:
The class that extends the features of another class is known as child class, sub class or derived class.
Parent Class:
The class whose properties and functionalities are used(inherited) by another class is known as parent class, super class or Base class.
The class whose properties and functionalities are used(inherited) by another class is known as parent class, super class or Base class.
Syntax: Inheritance in Java
To inherit a class we use extends keyword. Here class XYZ is child class and class ABC is parent class. The class XYZ is inheriting the properties and methods of ABC class.class XYZ extends ABC { }
Inheritance Example
In this example, we have a base class
Here we have collegeName, designation and work() method which are common to all the teachers so we have declared them in the base class, this way the child classes like
Teacher
and a sub class PhysicsTeacher
. Since class PhysicsTeacher
extends the designation and college properties and work() method from
base class, we need not to declare these properties and method in sub
class.Here we have collegeName, designation and work() method which are common to all the teachers so we have declared them in the base class, this way the child classes like
MathTeacher
, MusicTeacher
and PhysicsTeacher
do not need to write this code and can be used directly from base class.
class Teacher { String designation = "Teacher"; String collegeName = "Beginnersbook"; void does(){ System.out.println("Teaching"); } } public class PhysicsTeacher extends Teacher{ String mainSubject = "Physics"; public static void main(String args[]){ PhysicsTeacher obj = new PhysicsTeacher(); System.out.println(obj.collegeName); System.out.println(obj.designation); System.out.println(obj.mainSubject); obj.does(); } }
Output:Beginnersbook
Teacher
Physics
Teaching
Based on the above example we can say that
PhysicsTeacher
IS-A Teacher
. This means that a child class has IS-A relationship with the parent class. This is inheritance is known as IS-A relationship between child and parent class