Перегрузка методов и переопределение методов в Java
Язык программирования Java — лучший выбор, когда речь идет об объектно-ориентированном программировании. Благодаря таким понятиям, как классы, объекты, наследование, полиморфизм и т. д., работать с Java становится чрезвычайно легко. Простота доступа и простой синтаксис делают код эффективным и менее сложным. В этой статье мы узнаем о перегрузке и переопределении методов в Java. Ниже приведены темы, обсуждаемые в этом блоге:
Что такое перегрузка методов в Java?
Перегрузка метода позволяет методу иметь одно и то же имя, которое отличается в зависимости от аргументов или типов аргументов. Это может быть связано с полиморфизмом времени компиляции. Ниже приведены несколько советов, о которых следует помнить при перегрузке методов в Java.
Мы не можем перегрузить возвращаемый тип.
Хотя мы можем перегружать статические методы, аргументы или входные параметры должны быть другими.
Мы не можем перегрузить два метода, если они отличаются только ключевым словом static.
Как и другие статические методы, метод main() также может быть перегружен.
Давайте рассмотрим простую программу, чтобы понять, как работает перегрузка методов в Python.
public class Div{
public int div(int a , int b){
return (a / b); }
public int div(int a , int b , int c){
return ((a + b ) / c); }
public static void main(String args[]){
Div ob = new Div();
ob.div(10 , 2);
ob.div(10, 2 , 3);
}
}
Output: 5
4
В приведенной выше программе у нас есть два метода с одинаковыми именами, но разными параметрами. Вот как работает перегрузка методов в Java.
Почему метод перегружается?
Основное преимущество использования перегрузки методов в Java заключается в том, что это дает нам свободу не определять функцию снова и снова для выполнения одного и того же действия. В приведенном ниже примере два метода в основном выполняют деление, поэтому у нас могут быть разные методы с одним и тем же именем, но с разными параметрами. Это также помогает в полиморфизме времени компиляции.
Перегрузка метода main():
Ниже приведен пример перегрузки метода main() в java.
public class Edureka{
public static void main(String[] args){
System.out.println("hello");
Edureka.main("edurekan");
}
public static void main(String arg1){
System.out.println(" welcome" + arg1);
Edureka.main("welcome" , "to edureka");
}
public static void main(String arg1 , String arg2){
System.out.println("hello" , +arg1 , +arg2);
}
}
Output: hello welcome edurekan
hello, welcome to edureka
Примеры перегрузки методов
- Программа для перегрузки статических методов в java.
public class Test{
public static int func(int a ){
return 100;
}
public static char func(int a , int b){
return "edureka";
}
public static void main(String args[]){
System.out.println(func(1));
System.out.println(func(1,3));
}
}
Output: 100
edureka
- Программа для перегрузки трех методов с одинаковыми именами.
public class Add{
public int add(int a , int b){
return (a + b);
}
public int add(int a , int b , int c){
return (a + b + c) ;
}
public double add(double a , double b){
return (a + b);
}
public static void main( String args[]){
Add ob = new Add();
ob.add(15,25);
ob.add(15,25,35);
ob.add(11.5 , 22.5);
}
}
Output: 40
75
34
Что такое переопределение метода в Java?
Наследование в java включает отношения между родительским и дочерним классами. Всякий раз, когда оба класса содержат методы с одинаковыми именами и аргументами или параметрами, несомненно, что один из методов переопределит другой метод во время выполнения. Метод, который будет выполнен, зависит от объекта.
Если объект дочернего класса вызывает метод, метод дочернего класса переопределит метод родительского класса. В противном случае, если объект родительского класса вызывает метод, метод родительского класса будет выполнен.
Переопределение метода также помогает в реализации полиморфизма времени выполнения в java. Давайте рассмотрим простой пример, чтобы понять, как переопределение методов работает в java.
class Parent{
void view(){
System.out.println("this is a parent class method);
}}
class Child extends Parent{
void view(){
System.out.println("this is a child class method);
}}
public static void main(String args[]){
Parent ob = new Parent();
ob.view();
Parent ob1 = new Child();
ob1.view();
Output: this is a child class method
Правила переопределения метода
Модификатор доступа может предоставить дополнительный доступ только для переопределенного метода.
Метод final не поддерживает переопределение метода.
Статический метод не может быть переопределен.
Частные методы не могут быть переопределены.
Тип возвращаемого значения переопределяющего метода должен быть таким же.
Мы можем вызвать метод родительского класса в методе переопределения, используя ключевое слово super.
Конструктор нельзя переопределить, поскольку дочерний класс и родительский класс не могут иметь конструктор с одинаковым именем.
Пример переопределения метода
- Программа для отображения переопределения с использованием ключевого слова super
class Parent {
void show(){
System.out.println("parent class method");
}
class Child extends Parent {
void show(){
super.show();
System.out.println("child class method");
}
public static void main(String args[]){
Parent ob = new Child();
ob.show();
}
}
Output: parent class method
child class method
Перегрузка и переопределение: разница между перегрузкой метода и переопределением метода
Ниже приведены основные различия между перегрузкой и переопределением методов в Java.
В этом блоге мы подробно обсудили перегрузку и переопределение методов. С участием классов, объектов и концепций, таких как наследование и полиморфизм, становится очень важным получить четкое представление о том, что означает перегрузка или переопределение методов в java.
Язык программирования Java является вершиной объектно-ориентированного программирования и включает в себя множество приложений. Учитывая спрос и популярность, начинающий разработчик Java должен владеть фундаментальными понятиями языка программирования.
Есть к нам вопрос? пожалуйста, укажите это в разделе комментариев этой статьи о «перегрузке методов и переопределении методов в java», и мы свяжемся с вами как можно скорее.