You are on page 1of 20

Object Oriented

Programming
Topic:
Method Overloading/Overriding

Made by:
Akash Mittal (19E5007)
Meher Adbol (19E5036)
Sachin Tiwari (19E5050)
TOPIC

❑What is Method?

❑Why do we use Method in java?

❑Method Declaration.

❑Types of Method.

❑Method Overloading.

❑Method Overriding
Method in Java and why do we use Method -

In general, a method is a way to perform some task. A method is a


block of code or collection of statements or a set of code grouped
together to perform a certain task or operation. It is used to
achieve the reusability of code. We write a method once and use it
many times. We do not require to write code again and again. It
also provides the easy modification and readability of code, just by
adding or removing a chunk of code. The method is executed only
when we call or invoke it. The most important method in Java is
the main() method.

Method Declaration- The method declaration provides


Information about method attributes, such as visibility,
return-type, name, and arguments. It has six components that are
known as method header, as we have shown in the following
figure.
Hence we discuss all word one by one which is given in above
image .
1.Method Signature: Every method has a method signature. It
is a part of the method declaration. It includes the method
name and parameter list.
2.Access Specifier: Access specifier or modifier is the access
type of the method. It specifies the visibility of the method. Java
provides four types of access specifier:
Public: The method is accessible by all classes when we use
public specifier in our application.
Private: When we use a private access specifier, the method is
accessible only in the classes in which it is defined.
Protected: When we use protected access specifier, the method
is accessible within the same package or subclasses in a
different package.
Default: When we do not use any access specifier in the method
declaration, Java uses default access specifier by default. It is
visible only from the same package only.

3.Return Type: Return type is a data type that the method


returns. It may have a primitive data type, object, collection,
void, etc. If the method does not return anything, we use void
keyword.
4
4.Method Name: It is a unique name that is used to define the
name of a method. It must be corresponding to the functionality
of the method. Suppose, if we are creating a method for
subtraction of two numbers, the method name must
be subtraction(). A method is invoked by its name.

5.Parameter List: It is the list of parameters separated by a


comma and enclosed in the pair of parentheses. It contains the
data type and variable name. If the method has no parameter,
left the parentheses blank.

6.Method Body: It is a part of the method declaration. It


contains all the actions to be performed. It is enclosed within the
pair of curly braces.
Types of Method-
There are two types of methods in Java:
1.Predefined Method
2.User-defined Method

1.Predefined Method- In Java, predefined methods are the


method that is already defined in the Java class libraries is known
as predefined methods. We can directly use these methods just
by calling them in the program at any point. Some pre-defined
methods are length(), equals(), compareTo() etc. When we call
any of the predefined methods in our program, a series of codes
related to the corresponding method runs in the background that
is already stored in the library.
Each and every predefined method is defined inside a class.
Example-

public class Main {


public static void main(String[] args) {
String e="hello";
String b="hello";
String c="meklo";
String d="hemlo";
System.out.println("hello compare to hello
->"+e.compareTo(b));//0 because both are equal
System.out.println("hello compare to meklo
->"+e.compareTo(c));//-5 because "h" is 5 times lower than "m"
System.out.println("hello compare to hemlo
->"+e.compareTo(d));//-1 because "l" is 1 times lower than "m“

User-defined Method-
The method written by the user or programmer is known as a
user-defined method. These methods are modified according to
the requirement.
Let’s we use user defined Method in below program-
public class Addition
{
public static void main(String[] args)
{
int a = 19;
int b = 5;
//method calling
int c = add(a, b); //a and b are actual parameters
System.out.println("The sum of a and b is= " + c);
}
//user defined method
public static int add(int n1, int n2) //n1 and n2 are formal paramete
rs
{
int s;
s=n1+n2;
return s; //returning the sum
}
}
Output:
The sum of a and b is= 24
Method Overloading in Java-
Java is an Object-Oriented programming language, and it follows
basic OOPs concepts. Overloading is one of the important concepts
in Java. Overloading allows different methods having the same name
in a class but with different signatures. Signature includes the
number of parameters, the data type of parameters and the
sequence of parameters passed in the method. f we have to perform
only one operation, having same name of the methods increases the
readability of the program. There are two ways to overload the
method in java.
1. By changing number of arguments.
2. By changing the data type.

1. Method Overloading: changing no. of arguments-


In below example, we have created two methods, first add() method
performs addition of two numbers and second add method
performs addition of three numbers.
class Sum{
static int add(int a,int b){
return a+b;
}
static int add(int a,int b,int c){
return a+b+c;
}
}
class TestOverloading1{
public static void main(String[] args){
System.out.println(Sum.add(11,11));
System.out.println(Sum.add(11,11,11));
}
}
Output:
22
33
2.Method Overloading: changing data type of arguments-
In this example, we have created two methods that differs in data
type. The first add method receives two integer arguments and
second add method receives two double arguments.
class Adder{
static int add(int a, int b){
return a+b;}
static double add(double a, double b){
return a+b;
} }
class TestOverloading2{
public static void main(String[] args){
System.out.println(Adder.add(11,11));
System.out.println(Adder.add(12.3,12.6));
}}
Output:
22
24.9
Method Overriding in Java-
If subclass (child class) has the same method as declared in the
parent class, it is known as method overriding in Java. Method
overriding is used to provide the specific implementation of a
method which is already provided by its parent class. It is also
useful in the implementation of Runtime or Dynamic
Polymorphism in which the method is invoked during the
execution of the program. Let's understand the problem that we
may face in the program if we don't use method overriding.

//Creating a parent class


class Vehicle{
void run(){System.out.println("Vehicle is running");}
}
//Creating a child class
class Bike extends Vehicle{
public static void main(String args[]){
//creating an instance of child class
Bike akash = new Bike();
akash.run();
}
}
Output:
Vehicle is running
Problem is that I have to provide a specific implementation of run()
method in subclass that is why we use method overriding.
In this example, we have defined the run method in the subclass as
defined in the parent class but it has some specific implementation.
The name and parameter of the method are the same, and there is
IS-A relationship between the classes, so there is method overriding.
//Creating a parent class.
class Vehicle{
//defining a method
void run(){System.out.println("Vehicle is running");}
}
//Creating a child class
class Bike2 extends Vehicle{
//defining the same method as in the parent class
void run(){System.out.println("Bike is running safely");}

public static void main(String args[]){


Bike2 obj = new Bike2();//creating object
obj.run();//calling method
}
}
Output:
Bike is running safely .
Project Code:
Output:

You might also like