Autor Téma: Potomek objektů  (Přečteno 1657 krát)

Offline Fala

  • Plnoletý
  • ***
  • Příspěvků: 168
  • Karma: 2
    • Verze Delphi: XE2
    • Software pro poskytování technické podpory
Potomek objektů
« kdy: 22-07-2012, 13:46:33 »
Mám takový blbý dotaz.
Lze definovat Třídu, která by byla potomkem dvou nebo více tříd?
Na interface jsem to párkrát viděl, ale jestli to jde i normálně na klasické třídě.

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1412
  • Karma: 34
    • Pepak.net
Re:Potomek objektů
« Odpověď #1 kdy: 22-07-2012, 15:56:23 »
Ne. Třída může mít v Delphi (a drtivé většině ostatních jazyků) jen jednoho předka-třídu. Ono se to pak mnohem snáz implementuje a i pro programátora to bývá přehlednější. Pokud potřebuješ funkce z víc tříd, tak se to obvykle řeší tak, že ta tvoje třída je z jedné třídy zděděná a instanci druhé třídy má jako jedno ze svých proměnných, a nabízí funkce, které jenom "přeposílá" té instanci.

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1412
  • Karma: 34
    • Pepak.net
Re:Potomek objektů
« Odpověď #2 kdy: 22-07-2012, 15:57:05 »
No a nebo se to dělá pomocí těch interfaců, samozřejmě, těch můžeš zdědit, kolik chceš.

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 574
  • Karma: 25
Re:Potomek objektů
« Odpověď #3 kdy: 22-07-2012, 18:46:04 »
No a nebo se to dělá pomocí těch interfaců, samozřejmě, těch můžeš zdědit, kolik chceš.

to není dědění. Interface jenom říká, že ta třída má mít nějakou metodu.

Offline Fala

  • Plnoletý
  • ***
  • Příspěvků: 168
  • Karma: 2
    • Verze Delphi: XE2
    • Software pro poskytování technické podpory
Re:Potomek objektů
« Odpověď #4 kdy: 22-07-2012, 20:10:19 »
tak to byl jenom takový opravdu blbý dotaz, jestli se náhodou v nových delphi něco takového nedodělalo.

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 574
  • Karma: 25
Re:Potomek objektů
« Odpověď #5 kdy: 22-07-2012, 20:28:14 »
tak to byl jenom takový opravdu blbý dotaz, jestli se náhodou v nových delphi něco takového nedodělalo.

ono to nejde skoro nikde, přináší to komplikace při psaní překladačů a tak, takže se od toho upustilo. Vždycky to můžeš nějak obejít, třeba napsat novou třídu, která bude mít všechny metody, co potřebuješ a ta bude delegovat volání na instance těch zbývajících implementovaný chtříd.

Offline leonell

  • Mladík
  • **
  • Příspěvků: 99
  • Karma: 3
Re:Potomek objektů
« Odpověď #6 kdy: 24-07-2012, 09:52:51 »
Pochybuji, že by to tam dodělávali.
Jinak učeně se tomu říká vícenásobná dědičnost (multiple inheritance), jak už bylo uvedeno má to pár úskalí a ze známějších jazyků je to podporováno v C++, Pythonu a Perlu.
To jen pro doplnění.
L.