Polymorphism and Method Overloading in Java
By: Brinda in Java Tutorials on 2007-02-20
Polymorphism is the ability of an object to take on multiple forms. In Java, it can be achieved through method overriding and method overloading.
Method overriding is the ability of a subclass to provide its own implementation for a method that is already defined in its superclass. The method signature must be the same in both the superclass and the subclass. Here's an example:
class Animal { public void makeSound() { System.out.println("Animal is making a sound"); } } class Cat extends Animal { public void makeSound() { System.out.println("Meow"); } } class Dog extends Animal { public void makeSound() { System.out.println("Woof"); } } public class PolymorphismExample { public static void main(String[] args) { Animal myCat = new Cat(); Animal myDog = new Dog(); myCat.makeSound(); // Output: Meow myDog.makeSound(); // Output: Woof } }
In this example, we have an Animal
class with a makeSound()
method. The Cat
and Dog
classes extend the Animal
class and provide their own implementation of the makeSound()
method. In the main()
method, we create instances of Cat
and Dog
, but we store them in variables of type Animal
. When we call the makeSound()
method on these variables, the appropriate implementation is executed based on the actual object type.
Method overloading is the ability to define two or more methods in the same class with the same name but with different parameters. The method signature must be different for each method. Here's an example:
class Calculator { public int add(int x, int y) { return x + y; } public int add(int x, int y, int z) { return x + y + z; } } public class PolymorphismExample { public static void main(String[] args) { Calculator calculator = new Calculator(); System.out.println(calculator.add(1, 2)); // Output: 3 System.out.println(calculator.add(1, 2, 3)); // Output: 6 } }
In this example, we have a Calculator
class with two add()
methods. One takes two parameters, and the other takes three. When we call the add()
method on an instance of Calculator
, Java determines which method to call based on the number of arguments we provide.
Both method overriding and method overloading are examples of polymorphism in Java.
Add Comment
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
- Your name, rating, website address, town, country, state and comment will be publicly displayed if entered.
- Aside from the data entered into these form fields, other stored data about your comment will include:
- Your IP address (not displayed)
- The time/date of your submission (displayed)
- Your email address will not be shared. It is collected for only two reasons:
- Administrative purposes, should a need to contact you arise.
- To inform you of new comments, should you subscribe to receive notifications.
- A cookie may be set on your computer. This is used to remember your inputs. It will expire by itself.
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
- Although the administrator will attempt to moderate comments, it is impossible for every comment to have been moderated at any given time.
- You acknowledge that all comments express the views and opinions of the original author and not those of the administrator.
- You agree not to post any material which is knowingly false, obscene, hateful, threatening, harassing or invasive of a person's privacy.
- The administrator has the right to edit, move or remove any comment for any reason and without notice.
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
- Data Science
- Android
- React Native
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Related Tutorials
Read a file having a list of telnet commands and execute them one by one using Java
Open a .docx file and show content in a TextArea using Java
Step by Step guide to setup freetts for Java
Of Object, equals (), == and hashCode ()
Using the AWS SDK for Java in Eclipse
DateFormat sample program in Java
concurrent.Flow instead of Observable class in Java
Calculator application in Java
Sending Email from Java application (using gmail)
Comments