co je polymorfismus v Javě?
polymorfismus v Javě nastává, když existuje jedna nebo více tříd nebo objektů vzájemně souvisejících dědičností. Jinými slovy, je to schopnost objektu mít mnoho podob. Dědičnost umožňuje uživatelům dědit atributy a metody a polymorfismus používá tyto metody pro provádění různých úkolů. Cílem je tedy komunikace, ale přístup je jiný.
například máte smartphone pro komunikaci., Komunikační režim, který si vyberete, může být cokoli. Může to být hovor, textová zpráva, obrazová zpráva, pošta atd. Cílem je tedy společná komunikace, ale jejich přístup je jiný. To se nazývá polymorfismus.
v tomto tutoriálu se dozvíte –
- co je polymorfismus?
- Java Polymorfismus v OOP je s Příkladem
- Metoda Přepsání
- Rozdíl mezi Přetížením a Převažujícího
- Co je Dynamický Polymorfismus?,
- Super Klíčových slov
- Rozdíl mezi Statickou & Dynamický Polymorfismus
Klikněte zde, pokud video není přístupné
Java Polymorfismus v OOP je s Příkladem
Máme jeden rodič, třída, ‚Účet‘ s funkce z vklad a výběr. Účet má 2 Dětské třídy
Provoz vkladu a výběru je stejný pro ukládání a běžné účty. Takže zděděné metody z třídy účtu budou fungovat.,
Změna v Softwarové Požadavky
Tam je změna v požadavku, specifikaci, něco, co je tak běžné v softwarovém průmyslu. Ty mají přidat funkce privilegovaný bankovní účet s kontokorentu zařízení.
pro pozadí je kontokorent zařízení, kde můžete vybrat částku vyšší, než je zůstatek na vašem účtu k dispozici.
takže stáhnout metodu pro privilegované potřeby znovu implementovat., Testovaný kód však v úsporách a běžném účtu nezměníte. To je výhodou JEJDA,
Krok 1) Tak, že když je „stažen“ metoda pro spořicí účet je tzv. metody z mateřské třídy účtu je popraven.
Krok 2), Ale když je „Stáhnout“ metoda pro privilegovaného účtu (kontokorent) se nazývá odstoupit metoda je definován v privilegované třídy, je popraven. Jedná se o polymorfismus.,
Metoda Přepsání
Metoda Převažující je předefinování super metoda třídy v ponorce třídy.
pravidla pro přepis metody
- podpis metody, tj. název metody, seznam parametrů a typ návratu musí přesně odpovídat.
- potlačené metody lze rozšířit dostupnost, ale ne úzký, tj. pokud je v soukromé základní třída, dítě, třída může dělat to veřejné, ale ne naopak.,
Příklad:
Rozdíl mezi Přetížením a Převažujícího
Co je to Dynamický Polymorfismus?
dynamický polymorfismus je mechanismus, kterým lze definovat více metod se stejným názvem a podpisem v podtřídě a podtřídě. Volání na přepsanou metodu je vyřešeno v době běhu.,
Dynamický Polymorfismus Příklad:
referenční proměnné super třída může odkazovat na dílčí objekt třídy
Doctor obj = new Surgeon();
Zvážit prohlášení,
obj.treatPatient();
Tady referenční proměnná „obj“ je nadřazené třídy, ale objekt je polohovací, aby je dítě třídy (jak je znázorněno na obrázku).
obj.,n
Pokud základní třídy, referenční se používá k volání metody, metody, která má být vyvolána rozhoduje JVM, v závislosti na objektu referenční ukazuje
například, i když obj je odkaz na Lékaře, se nazývá metoda Chirurg, jak ukazuje Chirurg objekt
Tohle je rozhodnuto během run-time a proto nazván dynamické nebo run-time polymorfismus
Super Klíčové slovo
Co když treatPatient metoda v Chirurg třídy chce provést funkce je definována v Lékaře třídy a pak provádět své vlastní specifické funkce?,
V tomto případě lze Klíčové slovo super
použít pro přístup k metodám rodičovské třídy z dětské třídy.
treatPatient metoda v Chirurg třídě může být zapsáno jako:
treatPatient(){ super.treatPatient(); //add code specific to Surgeon}
klíčové slovo super může být použit pro přístup k datům nebo členské metody třídy super v sub class.,br>Example:-To learn Inheritance, Polymorphism & super keyword
Step 1) Copy the following code into an Editor
Difference between Static & Dynamic Polymorphism
|
|
---|---|
It relates to method overloading., | týká se metody overriding. |
chyby, pokud existují, jsou vyřešeny v době kompilace. Protože kód není spuštěn během kompilace, odtud název statický. Příklad: void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. |
V případě, že referenční proměnná je volání potlačené metody, metody, která má být uplatněna, je určen objekt, vaše referenční proměnná ukazuje. To je lze určit pouze za běhu, když kód v rámci provádění, odtud název dynamický., Ex: //reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient(); |