Jaka jest różnica między przeciążaniem a zastępowaniem metod?



W tym artykule omówiono kluczowe różnice między przeciążaniem metod a zastępowaniem w Javie, z różnymi przykładami, w tym słowem kluczowym super i różnymi regułami.

Jeśli chodzi o język programowania Java, to najlepszy wybór . Z koncepcjami takimi jak zajęcia , , itp., praca z nim staje się niezwykle łatwa . Łatwość dostępu i prosta składnia sprawiają, że kod jest wydajny i mniej złożony. W tym artykule dowiemy się o przeciążaniu i zastępowaniu metod w Javie. Poniżej znajdują się tematy omówione na tym blogu:

Co to jest przeciążanie metod w języku Java?

Przeciążenie metod pozwala na to, aby metoda miała taką samą nazwę, która różni się na podstawie argumentów lub typów argumentów. Może to być związane z polimorfizmem w czasie kompilacji. Poniżej znajduje się kilka wskazówek, o których musimy pamiętać podczas przeciążania metod w Javie.





  • Nie możemy przeciążać zwracanego typu.

  • Chociaż możemy przeciążać , argumenty lub parametry wejściowe muszą być różne.



  • Nie możemy przeciążyć dwóch metod, jeśli różnią się one tylko statycznym słowem kluczowym.

  • Podobnie jak inne metody statyczne, metoda main () również może być przeciążona.

przeciążanie metod - przeciążanie i nadpisywanie metod w Javedurece



Przyjrzyjmy się prostemu programowi, aby zrozumieć, jak działa przeciążanie metod w Pythonie.

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)}}
 Wynik: 5 4

W powyższym programie mamy dwie metody o tej samej nazwie, ale różnych parametrach. Tak działa przeciążanie metod w .

Dlaczego przeciążanie metod?

Główną zaletą używania przeciążania metod w Javie jest to, że pozwala nam nie definiować wielokrotnie funkcji w celu robienia tego samego. W poniższym przykładzie te dwie metody zasadniczo wykonują dzielenie, więc możemy mieć różne metody o tej samej nazwie, ale z różnymi parametrami. Pomaga również w polimorfizmie w czasie kompilacji.

Przeciążanie metody main ():

Poniżej znajduje się przykład przeciążenia metody main () w języku 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 (' witamy '+ arg1) Edureka.main (' witamy ',' to edureka ')} public static void main (String arg1, String arg2) {System.out.println (' hello ', + arg1, + arg2)}}
 Wynik: witaj witaj edurekan witaj witaj w edurece

Przykłady przeciążania metod

  • Program do przeciążania metod statycznych w 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))}}
 Wynik: 100 edureka
  • Program do przeciążania trzech metod o tej samej nazwie.
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)}}
 Wynik: 40 75 34

Co to jest przesłanianie metody w Javie?

Dziedziczenie w Javie obejmuje relację między klasami nadrzędnymi i podrzędnymi. Za każdym razem, gdy obie klasy zawierają metody o tej samej nazwie i argumentach lub parametrach, jest pewne, że jedna z metod przesłania drugą metodę podczas wykonywania. Metoda, która zostanie wykonana, zależy od obiektu.

Jeśli obiekt klasy potomnej wywoła metodę, metoda klasy podrzędnej zastąpi metodę klasy nadrzędnej. W przeciwnym razie, jeśli obiekt klasy nadrzędnej wywoła metodę, zostanie wykonana metoda klasy nadrzędnej.

Nadpisywanie metod pomaga również we wdrażaniu polimorfizmu środowiska uruchomieniowego w java. Weźmy prosty przykład, aby zrozumieć, jak działa zastępowanie metod w Javie.

class Parent {void view () {System.out.println ('to jest metoda klasy nadrzędnej)}} class Child extends Parent {void view () {System.out.println (' to jest metoda klasy potomnej)}} public static void main (String args []) {Parent ob = new Parent () ob.view () Parent ob1 = new Child () ob1.view ()
 Wynik: jest to metoda klasy potomnej

Reguły nadpisywania metod

  • Plik dostęp do edycji może zezwolić tylko na większy dostęp dla zastąpionej metody.

  • DO finał metoda nie obsługuje zastępowania metody.

  • Nie można zastąpić metody statycznej.

    samouczek Visual Studio dla początkujących
  • Nie można zastąpić metod prywatnych.

  • Zwracany typ metody zastępującej musi być taki sam.

  • Możemy wywołać metodę klasy nadrzędnej w metodzie przesłaniającej za pomocą słowa kluczowego super.

  • DO budowniczy nie można przesłonić, ponieważ klasa podrzędna i klasa nadrzędna nie mogą mieć konstruktora o tej samej nazwie.

Przykład przesłaniania metody

  • Program do wyświetlania nadpisywania za pomocą słowa kluczowego super
class Parent {void show () {System.out.println ('metoda klasy nadrzędnej')} class Child extends Parent {void show () {super.show () System.out.println ('metoda klasy potomnej')} public static void main (String args []) {Parent ob = new Child () ob.show ()}}
 Wynik: metoda klasy nadrzędnej metoda klasy potomnej

Przeciążanie a zastępowanie: różnica między przeciążaniem metod a zastępowaniem metod

Poniżej przedstawiono kluczowe różnice między przeciążaniem a zastępowaniem metod w języku Java.

Przeciążanie metod Zastępowanie metody
  • Służy do zwiększenia czytelności programu
  • Zapewnia określoną implementację metody już w klasie nadrzędnej
  • Wykonywany jest w ramach tej samej klasy
  • Obejmuje wiele zajęć
  • W przypadku przeciążenia parametry muszą być inne
  • W przypadku przesłonięcia parametry muszą być takie same
  • Jest przykładem polimorfizmu w czasie kompilacji
  • Jest to przykład polimorfizmu w czasie wykonywania
  • Typ zwrotu może być inny, ale musisz również zmienić parametry.
  • Typ zwracany musi być taki sam w zastępowaniu
  • Metody statyczne mogą być przeciążone
  • Zastępowanie nie obejmuje metod statycznych.

Na tym blogu szczegółowo omówiliśmy przeciążanie metod i nadpisywanie metod. Przy zaangażowaniu klas, obiektów i pojęć, takich jak dziedziczenie i polimorfizm, dość ważne staje się jasne zrozumienie, co to znaczy przeciążać lub zastępować metody w Javie.

Język programowania Java jest szczytem w programowaniu obiektowym i zawiera wiele aplikacji. Ze względu na zapotrzebowanie i popularność, początkujący programista Java musi biegle posługiwać się podstawowymi koncepcjami języka programowania. Zapisz się do Edureka's aby rozpocząć naukę.

Masz do nas pytanie? wspomnij o tym w sekcji komentarzy tego artykułu na temat „przeciążania metod a zastępowanie metod w java”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.