Programovací jazyk Java je nejlepší volbou, pokud jde o . S pojmy jako třídy , , atd., je velmi snadné s ním pracovat . Snadný přístup a snadná syntaxe činí kód efektivním a méně složitým. V tomto článku se dozvíme o přetížení a přepsání metod v Javě. Níže jsou diskutována témata v tomto blogu:
- Co je přetížení metody v Javě?
- Proč přetížení metody?
- Příklady přetížení metody
- Co je přepsání metody?
- Pravidla pro přepsání metody
- Příklad přepsání metody
- Přetížení vs. přepsání: Rozdíly mezi přetížením metody a přepsáním metody
Co je přetížení metody v Javě?
Přetížení metody umožňuje, aby metoda měla stejný název, který se liší na základě argumentů nebo typů argumentů. Může to souviset s polymorfismem v době kompilace. Následuje několik ukazatelů, které musíme mít na paměti při přetížení metod v Javě.
Nemůžeme přetížit návratový typ.
I když můžeme přetížit , argumenty nebo vstupní parametry se musí lišit.
Nemůžeme přetížit dvě metody, pokud se liší pouze statickým klíčovým slovem.
Stejně jako ostatní statické metody může být metoda main () také přetížena.
Podívejme se na jednoduchý program, abychom pochopili, jak v Pythonu funguje přetížení metody.
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)}}
Výstup: 5 4
Ve výše uvedeném programu máme dvě metody se stejným názvem, ale různými parametry. Takto funguje přetížení metody .
Proč přetížení metody?
Hlavní výhodou použití přetížení metody v Javě je to, že nám dává svobodu nedefinovat funkci znovu a znovu pro provádění stejné věci. V níže uvedeném příkladu tyto dvě metody v podstatě provádějí dělení, takže můžeme mít různé metody se stejným názvem, ale s různými parametry. Pomáhá také při kompilaci polymorfismu.
Přetížení metody main ():
Následuje příklad přetížení metody main () v Javě.
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)}}
Výstup: ahoj vítejte edurekan ahoj, vítejte v edureka
Příklady přetížení metody
- Program na přetížení statických metod v Javě.
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))}}
Výstup: 100 edureka
- Program na přetížení tří metod se stejným názvem.
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)}}
Výstup: 40 75 34
Co je přepsání metody v Javě?
Dědičnost v Javě zahrnuje vztah mezi třídami rodičů a dětí. Kdykoli obě třídy obsahují metody se stejným názvem a argumenty nebo parametry, je jisté, že jedna z metod během provádění přepíše jinou metodu. Metoda, která bude provedena, závisí na objektu.
Pokud objekt podřízené třídy volá metodu, metoda podřízené třídy přepíše metodu nadřazené třídy. V opačném případě, pokud objekt nadřazené třídy zavolá metodu, bude provedena metoda nadřazené třídy.
Přepsání metody také pomáhá při implementaci runtime polymorfismu v Javě. Uveďme si jednoduchý příklad, abychom pochopili, jak přepsání metod funguje v Javě.
java k moci
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 ()
Výstup: toto je metoda dětské třídy
Pravidla pro přepsání metody
The přístup k úpravám může povolit pouze větší přístup pro přepsanou metodu.
NA finále metoda nepodporuje přepsání metody.
Statickou metodu nelze přepsat.
Soukromé metody nelze přepsat.
Návratový typ přepisovací metody musí být stejný.
Můžeme volat metodu nadřazené třídy v převažující metodě pomocí super klíčového slova.
NA stavitel nelze přepsat, protože podřízená třída a nadřazená třída nemohou mít konstruktor se stejným názvem.
Příklad přepsání metody
- Program zobrazující přepsání pomocí super klíčového slova
třída Rodič {void show () {System.out.println ('metoda rodičovské třídy')} třída Dítě rozšiřuje Rodič {void show () {super.show () System.out.println ('metoda dětské třídy')} veřejná static void main (String args []) {Parent ob = new Child () ob.show ()}}
Výstup: metoda mateřské třídy metoda dětské třídy
Přetížení vs. přepsání: Rozdíl mezi přetížením metody a přepsáním metody
Následují klíčové rozdíly mezi přetížením metody a přepsáním v Javě.
Přetížení metody | Přepsání metody |
|
|
|
|
|
|
|
|
|
|
|
|
V tomto blogu jsme podrobně diskutovali přetížení metody a přepsání metody. Díky zapojení tříd, objektů a konceptů, jako je dědičnost a polymorfismus, se stává docela důležité získat jasnou představu o tom, co to znamená přetížení nebo přepsání metod v Javě.
Programovací jazyk Java je vrcholem v objektově orientovaném programování a obsahuje mnoho aplikací. S poptávkou a popularitou musí aspirující vývojář java ovládat základní koncepty programovacího jazyka. Zaregistrujte se k Edurece nastartovat učení.
Máte na nás dotaz? uveďte to prosím v sekci komentářů v tomto článku o „přetížení metody vs. přepsání metody v javě“ a my se vám ozveme co nejdříve.