Introduction
Type promotion is done while doing method overloading in Java. When the datatype is not the same then we promote one datatype to another datatype. We cannot de-promote one datatype to another datatype.
According to the figure:
- byte can be promoted to <byte - short - int - long - float - double>.
- short can be promoted to <short - int - long - float - double>.
- int can be promoted to <int - long - float - double>.
- long can be promoted to <long - float - double>.
- char can be promoted to <char - int - long - float - double>.
- float can be promoted to <float - double>.
Method Overloading in Java
In Java, when a class has multiple methods with the same name but have different parameters, it is known as method overloading.
Example
- package demo11;
- class Demo11
- {
- void subtract(int x, int y)
- {
- System.out.println(x-y);
- }
- void subtract(int x, int y, int z)
- {
- System.out.println(x-y-z);
- }
- void subtract(int x, int y, int z, int w)
- {
- System.out.println(x-y-z-w);
- }
- public static void main(String[] args)
- {
- Demo11 s = new Demo11();
- s.subtract(20, 10);
- s.subtract(60, 30, 10);
- s.subtract(90, 30, 20, 10);
- }
- }
Output
Example of Type Promotion in Java
Example 1
Type promotion is done here.
- package demo11;
- class Demo11
- {
- void sum(int x, long y)
- {
- System.out.println(x+y);
- }
- void sum(int x, int y, int z)
- {
- System.out.println(x+y+z);
- }
- public static void main(String[] args)
- {
- Demo11 s = new Demo11();
- s.sum(40, 40);
- s.sum(40, 40, 40);
- }
- }
Output
Example 2
No type promotion, because the datatypes match here.
- package demo11;
- class Demo11
- {
- void sum(int x, int y)
- {
- System.out.println("yahoo");
- }
- void sum(long x, long y)
- {
- System.out.println("lalala");
- }
- void sum(double x, double y)
- {
- System.out.println("pppppp");
- }
- public static void main(String[] args)
- {
- Demo11 s = new Demo11();
- s.sum(40, 40);
- }
- }
Output
Example 3
We cannot de-promote datatypes.
- package demo11;
- class Demo11
- {
- void sum(int x, long y)
- {
- System.out.println("yahoo");
- }
- void sum(long x, int y)
- {
- System.out.println("lalala");
- }
- public static void main(String[] args)
- {
- Demo11 s = new Demo11();
- s.sum(40, 40);
- }
- }
-
-
Output
Summary
This article explains type promotion in Java.