Extends Keyword: Live Demo
Extends Keyword: Live Demo
Extends Keyword: Live Demo
cgi
Inheritance can be defined as the process where one class acquires the properties of another.
With the use of inheritance the information is made manageable in a hierarchical order.
The class which inherits the properties of other is known as subclass and the class whose
properties are inherited is known as superclass .
extends Keyword
extends is the keyword used to inherit the properties of a class. Following is the syntax of extends keyword.
class Super {
.....
.....
Sample Code
Following is an example demonstrating Java inheritance. In this example, you can observe two classes namely
Calculation and My_Calculation.
Using extends keyword, the My_Calculation inherits the methods addition and Subtraction of Calculation class.
Copy and paste the following program in a file with name My_Calculation.java
Example
Live Demo
Calculation {
int z;
1 of 9 2/19/18, 5:38 PM
Java Inheritance https://www.tutorialspoint.com/cgi-bin/printpage.cgi
javac My_Calculation.java
java My_Calculation
Output
In the given program, when an object to My_Calculation class is created, a copy of the contents of the
superclass is made within it. That is why, using the object of the subclass you can access the members of a
superclass.
The Superclass reference variable can hold the subclass object, but using that variable you can access only the
members of the superclass, so to access the members of both classes it is recommended to always create reference
variable to the subclass.
If you consider the above program, you can instantiate the class as given below. But using the superclass reference
variable ( cal in this case) you cannot call the method multiplication, which belongs to the subclass
My_Calculation.
2 of 9 2/19/18, 5:38 PM
Java Inheritance https://www.tutorialspoint.com/cgi-bin/printpage.cgi
addition(a, b);
Subtraction(a, b);
It is used to differentiate the members of superclass from the members of subclass, if they have same
names.
If a class is inheriting the properties of another class. And if the members of the superclass have the names same
as the sub class, to differentiate these variables we use super keyword as shown below.
super.variable
super.method();
Sample Code
This section provides you a program that demonstrates the usage of the super keyword.
In the given program, you have two classes namely Sub_class and Super_class, both have a method named
with different implementations, and a variable named num with different values. We are invoking display
method of both classes and printing the value of the variable num of both classes. Here you can observe that we
have used super keyword to differentiate the members of superclass from subclass.
Example
Live Demo
Super_class {
int num = 20;
3 of 9 2/19/18, 5:38 PM
Java Inheritance https://www.tutorialspoint.com/cgi-bin/printpage.cgi
Compile and execute the above code using the following syntax.
javac Super_Demo
java Super
Output
super(values);
Sample Code
The program given in this section demonstrates how to use the super keyword to invoke the parametrized
constructor of the superclass. This program contains a superclass and a subclass, where the superclass contains a
4 of 9 2/19/18, 5:38 PM
Java Inheritance https://www.tutorialspoint.com/cgi-bin/printpage.cgi
parameterized constructor which accepts a integer value, and we used the super keyword to invoke the
parameterized constructor of the superclass.
Copy and paste the following program in a file with the name Subclass.java
Example
Live Demo
Superclass {
int age;
Superclass(int age) {
this.age = age;
Compile and execute the above code using the following syntax.
javac Subclass
java Subclass
Output
IS-A Relationship
IS-A is a way of saying: This object is a type of that object. Let us see how the extends keyword is used to achieve
inheritance.
5 of 9 2/19/18, 5:38 PM
Java Inheritance https://www.tutorialspoint.com/cgi-bin/printpage.cgi
Now, based on the above example, in Object-Oriented terms, the following are true −
With the use of the extends keyword, the subclasses will be able to inherit all the properties of the superclass
except for the private properties of the superclass.
We can assure that Mammal is actually an Animal with the use of the instance operator.
Example
Live Demo
Animal {
6 of 9 2/19/18, 5:38 PM
Java Inheritance https://www.tutorialspoint.com/cgi-bin/printpage.cgi
Output
Since we have a good understanding of the extends keyword, let us look into how the implements keyword is
used to get the IS-A relationship.
Generally, the implements keyword is used with classes to inherit the properties of an interface. Interfaces can
never be extended by a class.
Example
Example
Live Demo
interface Animal{}
Mammal implements Animal{}
Output
7 of 9 2/19/18, 5:38 PM
Java Inheritance https://www.tutorialspoint.com/cgi-bin/printpage.cgi
HAS-A relationship
These relationships are mainly based on the usage. This determines whether a certain class HAS-A certain thing.
This relationship helps to reduce duplication of code as well as bugs.
Example
This shows that class Van HAS-A Speed. By having a separate class for Speed, we do not have to put the entire
code that belongs to speed inside the Van class, which makes it possible to reuse the Speed class in multiple
applications.
In Object-Oriented feature, the users do not need to bother about which object is doing the real work. To achieve
this, the Van class hides the implementation details from the users of the Van class. So, basically what happens is
the users would ask the Van class to do a certain action and the Van class will either do the work by itself or ask
another class to perform the action.
Types of Inheritance
There are various types of inheritance as demonstrated below.
8 of 9 2/19/18, 5:38 PM
Java Inheritance https://www.tutorialspoint.com/cgi-bin/printpage.cgi
A very important fact to remember is that Java does not support multiple inheritance. This means that a class
cannot extend more than one class. Therefore following is illegal −
Example
9 of 9 2/19/18, 5:38 PM