Java - preťaženie konštruktorov

Programovacie jazyky, rady, poradňa...
Natrezim
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 390
Registrovaný: 01 apr 2009, 15:07
Bydlisko: SVK Prievidza

Java - preťaženie konštruktorov

Príspevok od používateľa Natrezim »

Zdravím.
Mám problém, pri preťažovaní konštruktoru v Jave. Chcem vytvoriť preťažený konštruktor, ktorý bude mať parametre rovnaké ako normálny konštruktor ale bude ich brať v opačnom poradí.
Trieda dedí parametre z inej triedy ktorá ju rozširuje. Preto musia byť parametre v tom konštruktore v poradí v akom sú aj v nadtriede.

Akurát mi to teda nejde, lebo neviem ako to správne zapísať :) Viete poradiť niekto ?

Kód: Vybrať všetko

public Class(Type1 paramA, Type2 paramB)
{
      
}

public Class(Type2 paramB, Type1 paramA)
{

}
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

Re: Java - preťaženie konštruktorov

Príspevok od používateľa mirak2 »

aj ked nevidim jediny logicky dovod, na co by to bolo dobre... nevidim ani jediny dovod preco by to co si napisal malo nefungovat
Natrezim
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 390
Registrovaný: 01 apr 2009, 15:07
Bydlisko: SVK Prievidza

Re: Java - preťaženie konštruktorov

Príspevok od používateľa Natrezim »

Teraz ma napadlo, že som zabudol uviesť, že trieda dedí parametre z inej triedy ktorá ju rozširuje. Preto musia byť parametre v tom konštruktore v poradí v akom sú aj v nadtriede.
Logiku v tom ani nehľadaj. Proste, aby mohol byť preťažený konštruktor s tými istými argumentami, nesmú byť rovnaké. Malo by sa to dať nejako implementovať ale neviem ako ... ani na google som nič také nenašiel. Veľmi netypická úloha.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8219
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Java - preťaženie konštruktorov

Príspevok od používateľa harrison314 »

Malo by to ist takto, super (v tomto pripade) explicitne zavola konstruktor parenta.

Kód: Vybrať všetko

public Class(Type1 paramA, Type2 paramB)
{
      super(paramA,paramB);
}

public Class(Type2 paramB, Type1 paramA)
{
   super(paramA,paramB);
}
Natrezim
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 390
Registrovaný: 01 apr 2009, 15:07
Bydlisko: SVK Prievidza

Re: Java - preťaženie konštruktorov

Príspevok od používateľa Natrezim »

ďakujem. funguje. Pravdupovediac som nečakal také jednoduché riešenie :D Som nad takou možnosťou ani neuvažoval.
ebb
Amateur
Amateur
Príspevky: 13
Registrovaný: 13 mar 2013, 17:18

Re: Java - preťaženie konštruktorov

Príspevok od používateľa ebb »

pokial by si v tej rodicovskej triede mal nejaky no-arg konstruktor, tak by ti to preslo... ak v child triede nevolas v konstruktore super, tak java predpoklada, ze rodicovska trieda ma ten no-arg konstruktor, a ten tam automaticky zavola (hoci to nevidis.. je tam ako keby super())..
Napísať odpoveď