» Poradna » Programy

C# - konštruktory

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 7/7
 |   |   |  [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


Přechod z Windows na macOS: Co vás čeká a nemine

Přechod z Windows na macOS: Co vás čeká a nemine

** 5 kroků, které vás čekají, když se rozhodnete přejít z Windows na počítač značky Apple se systémem macOS ** macOS umí přenést data z počítače s Windows ** Při přechodu si budete zvykat na nové funkce a chování systému

17.  1.  2018 | Stanislav Janů | 142

Nejnovější americká výsadková loď USS Portland dostane laserovou zbraň

Nejnovější americká výsadková loď USS Portland dostane laserovou zbraň

** Právě v tomto období vstupuje do služby výsadková loď, která nese označení USS Portland (LPD-27) ** Specialisté na ní brzy přenesou laserový zbraňový systém XN-1 LaWS ** Ten dříve fungoval na výsadkové lodi třídy Austin/Trenton USS Ponce

17.  1.  2018 | Stanislav Mihulka | 5


Aktuální číslo časopisu Computer

Zachraňte nefunkční Windows

Jak nakupovat a prodávat kryptoměny

Otestovali jsme konvertibilní notebooky

Velký test 14 herních myší