» »

Java, extendanje iz dveh razredov?

Java, extendanje iz dveh razredov?

Mitja223 ::

Torej imam sledeč problem, imam razrede A, B in C.

Razred A je tisti v katerem bi to rad naredi...
Razred B je razred iz katerega morem (zaradi drugih omejitev) extendati razred A
Razred C pa je razred iz katerega bi rad dobil metode v A extends B brez, da morem te metode dejansko implementirati v razredu A, ker se mi bodo metode iz razreda C ponavljale pri več razredih in jih ne želim copy pastat X krat (in vsakič popravljati).

Kakšna ideja kako se da to izpeljati? Če sploh?

Mavrik ::

Java nima t.i. multiple inheritanca, tako da ne moreš extendati več kot en sam razred.

Verjetno bi šlo če C spremeniš v interface in napišeš kodo kot t.i. default metode. Potem lahko v B implementiraš interface C in bo to delal.
The truth is rarely pure and never simple.

GupeM ::

Daj nariši kako bi rad kater razred extenda katerega. Ker iz napisanega bi sklepal, da pod točko 2 misliš B extends A, pod točko 3 pa ti piše A extends B. Boš pa zagotovo moral uporabiti interface in verjetno neko "default" oz. "simple" implementacijo enega razreda, s katerim boš potem čaral naprej.

amacar ::

Lahko narediš abstrakten class z implementiranimi metodami in ta class potem implementaš namesto extendaš.

Spura ::

Imas razred A, ki mora zaradi kakih method signature requirementov extendati razred B, in bi rad razred C kot mixin.

Opcije so:

- Razred C naredis kot interface, ki ima kup metod z default implementacijami. Seveda razred C potem ne more imeti instancnih variablel.

- Instanco razreda C dodas kot member variablo v razred A in po potrebi naredis delegate metode (sodoben IDE ti jih lahko generira, da se izognes pisanju). Downside tega pristopa je to, da razred A ni instanceof C, kar je lahko problem ce imas metode, ki zahtevajo da jim podas objekt razreda C.

Torej teli dve varianti imas odvisno za kaksen namen rabis imet notr v A tudi razred C.

OrkAA ::

Lahko uporabis kompozicijo.

Tu je en primer: https://stackoverflow.com/questions/723...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Razlika PORABE med GASTRO in gospodinjskim zamrzovalnikom

Oddelek: Loža
171966 (1579) d4vid
»

Sava vs Nexen vs Kumho

Oddelek: Na cesti
817372 (17109) Domobrancek
»

java in deleži

Oddelek: Programiranje
61061 (908) phyro
»

C++ pomoč

Oddelek: Programiranje
8875 (752) schtr4jh
»

Izbiramo najboljše avtomobile 2010

Oddelek: Na cesti
282318 (1584) innerspace

Več podobnih tem