» Poradna » Programy

C# - konštruktory

 |   |   |  [91.127.8.---]

class OdvodenaTrieda : ZakladnaTrieda
{
public OdvodenaTrieda() : base()
{

}
}

Prečo sa konštruktory nadtriedy dajú v C# a Jave volať iba na začiatku konštruktoru podtriedy? Mohol by mi niekto vysvetliť význam tohto nezmyslu. Sú predsa situácie kedy by bolo vhodné zavolať konštruktor rodičovskej triedy napr. po splnení nejakej podmienky tak ako sa to bežne robí v Delphi:

type
OdvodenaTrieda = class(ZakladnaTrieda)
public
constructor Create;
end;

constructor OdvodenaTrieda.Create;
begin
if Podmienka then inherited Create
else inherited Create('Nejaký parameter');
end;

Odpovědi na otázku

 |   |   |  [86.49.45.---]

Smysl toho je takovy, ze napred konstruujes predka a potom potomka, coz je logicke.

Muzes mi rict, jaky konkretni problem resis, ze ti tohle nevyhovuje?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [84.47.3.---]

chcem skontrolovať akého typu je patrameter a podľa toho buď vyvolať výnimku alebo konštruktor rodičovskej triedy.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [86.49.45.---]

Tak holt vyvolas vyjimku az po konstruktoru rodicovske tridy.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [84.47.50.---]

to práve nejde keď sa zavolá rodičovská trieda s tým typom parametru ktorí nechcem tak sa vyvolá úplne iná výnimka...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [84.47.50.---]

ktorÝ

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Mno kdyz to chces testovat na typ parametru, tak proste udelas konstruktory jen s tim typem parametru, kterej chces povolit. Tedy jestli bys chtel povolit jen konstruktor s parametrem int, tak nebudes delat konstruktory s parametrem string, char, double... a ty zakazovat. Proste je vubec neudelas.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |   |  [84.47.50.---]

V tomto prípade sa mi zdá jednoduchšie udržiavať jeden konštruktor hlavne keď všetky typy parametrov majú spoločného predka.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Public



Určitě si přečtěte


Aktuální číslo časopisu Computer

Test 6 odolných telefonů a 22 powerbank

Srovnání technologií QLED a OLED

Měřte své sportovní výkony

Sady pro chytrou domácnost