NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 7 - Dědičnost a polymorfismus

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Libor Šimo (libcosenior):10.9.2013 10:37

Veľmi pekne a jednoducho vysvetlené.

Odpovědět
10.9.2013 10:37
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
dez1nd
Člen
Avatar
dez1nd:13.11.2013 14:24

nadhera, proc jsem nikdy nemel takoveho ucitele na programovani ? kdzy jsem ve skole tak me to silene nudi pac nevim co po me chce ale pri cteni tohoto navodu a psani kodu je to opravdu lehke se ucit.. dekujeme8-)

 
Odpovědět
13.11.2013 14:24
Avatar
KubaP
Člen
Avatar
KubaP:3.2.2014 13:57

Paráda! Srozumitelné, zábavné. Díky, jdu na mága.

 
Odpovědět
3.2.2014 13:57
Avatar
gizzycz
Člen
Avatar
gizzycz:8.6.2014 0:13

Zdarec, snažím se tady zprovoznit přiložený kód :

Uzivatel u = new Uzivatel("Jan Novák", 33);
Administrator a = new Administrator("Jo­sef Nový", 25);
// Nyní do uživatele uložíme administrátora:
u = a;
// Vše je v pořádku, protože uživatel je předek
// Zkusíme to opačně a dostaneme chybu:
a = u;

a to pomocí kódu:

class Uzivatel
{
public Uzivatel(string jmeno, int vek)
{ }
}
class Administrator: Uzivatel
{
private string telefonniCislo;
public Administrator(string jmeno, int vek)
{ }
}
static void Main(string[] args)
{
Uzivatel u = new Uzivatel("Jan Novák", 33);
Administrator a = new Administrator("Jo­sef Nový", 25);
u = a;
}

Hlasi mi to:'ConsoleAp­plication3.Uzi­vatel' does not contain a constructor that takes 0 arguments

Diky za jakoukoliv radu

Editováno 8.6.2014 0:14
 
Odpovědět
8.6.2014 0:13
Avatar
Ori I
Člen
Avatar
Odpovídá na gizzycz
Ori I:8.6.2014 1:04

niesom C# specialista ale pokial rozsirujes administratorom toho uzivatela tak mu vlastne (uzivatelovi) nepridavas ziaden parameter, cize si to hlada constructor bez argumentov. A ty ten constructor nemas definoveny

toto by malo fungovat(neskusal som to spustat ani nic, je to len od oka po par pivach napisane :D )

class Uzivatel
{
public Uzivatel()
{ }
public Uzivatel(string jmeno, int vek)
{ }
}
class Administrator: Uzivatel
{
private string telefonniCislo;
public Administrator(string jmeno, int vek)
{ }
}
static void Main(string[] args)
{
Uzivatel u = new Uzivatel("Jan Novák", 33);
Administrator a = new Administrator("Josef Nový", 25);
u = a;
}

snad som pomohol

 
Odpovědět
8.6.2014 1:04
Avatar
kopecj
Člen
Avatar
kopecj:28.5.2015 16:19

Docela krásně vysvětleno, konečně jsem pochopil:)

 
Odpovědět
28.5.2015 16:19
Avatar
MS84
Člen
Avatar
MS84:10.6.2015 11:32

Dobrý den, mám ten samý problém jako gizzycz. Vytvořil jsem si třídu fotograf s následujícím konstruktorem:

public fotograf(string jmeno, string pristroj, int pocetPristroju, int vek)

Poté si vytvořím třídu velky_fotograf, která je potomkem:
class velky_fotograf: fotograf
{}

Z této třídy ale nemohu vytvořil objekt. C# hlásí následující chybu:

velky_fotograf does not contain constructor, that takes 4 adguments (CS1729)

 
Odpovědět
10.6.2015 11:32
Avatar
Odpovídá na MS84
Michal Štěpánek:10.6.2015 12:14

Musíš mít v té své poděděné třídě konstruktor se čtyřmi parametry.

Odpovědět
10.6.2015 12:14
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
MS84
Člen
Avatar
MS84:10.6.2015 12:27

Adhoj,jj hlášce samozřejmě rozumím. Nerozumím ale tomu, proč si třída, která je potomkem automaticky nepřebírá konstruktor, pokud není definován nový

 
Odpovědět
10.6.2015 12:27
Avatar
Odpovídá na MS84
Michal Šmahel:10.6.2015 21:14

Protože se volá po deklaraci či zavolání třidy (při spuštění), mnohdy ji i řídí (spustí řadu metod) a zadávají se pomocí něho proměnné celé třídě.
Potomek není shodný (kdyby byl, nebyl by třeba), proto je to nastaveno odděleně. Když potřebuješ stejný, napíšeš potomkovi stejný.

Odpovědět
10.6.2015 21:14
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 47.