Autor Zpráva
Tomashekk
Profil
Potřeboval bych něco vysvětlit.
Nyní jsem se snažil pochopit co to vlastně je dědičnost a jak funguje.
Je tu někdo, kdo by mi to vysvětlil v praxi jinak než je to v jedné knížce? :) .. tam je to vysvětleno jako pták - sojka :)
Má tu někdo příklad jako scriptu?
__construct
Profil
Pozri si tento článok - je to tam vysvetlené aj na príkladoch
imploder
Profil
Tomashekk:
Pokud tě nenapadá, na co dědičnost použít, tak viz tady ten příklad s kalendářem: http://www.linuxsoft.cz/article.php?id_article=234
Prostě dědičnost se využívá tak, že vezmeme nějakou už existující třídu a upravíme ji pro naše konkrétní použití. Je to výhodné tehdy, když máme víc tříd, které mají něco společného - nemusíme tak programovat každou z nich celou znovu.
Tomashekk
Profil
super.. jenže já nějak nepobírám v tom OOP ještě to, jak vlastně vytvořím celý web... Kde je vlastně ta struktura... tabulky, apod...
__construct
Profil
Nepochopil som to tvoje „struktura… tabulky, apod…“ Ale pokiaľ chceš vedieť ako sa to využíva v praxi pozri si niečo o MVC…
Tomashekk
Profil
__construct:
myslel jsi mvc.cz ? asi ne co? :)
breeta
Profil *
MVC
Tomashekk
Profil
ok, má tu někdo na ukázku jakýkoliv index, který má v sobě strukturu? Tím myslím jako celý vzhled.
Já pořád nějak nepobírám, jak pomocí OOP, mohu udělat např. index.php, který bude vypadat jako toto forum.
WertriK
Profil
Tomashekk:

http://docs.google.com/View.aspx?docid=dc5mxfdk_426xx3dq

http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=32092

Důležité je začít :-)

GL
František Hliva
Profil
Pozor dedičnosť by sa mala používať len v prípade že má zmysel. Určite by sa trieda nemala odvodzovať od ľubovolnej triedy ktorá s ňou logicky nesúvisí.

určite sa vyhni niečomu takémuto:

class Button : FileStream
{
}
class Button : FileStream
{
}


dedičnosť by sa mala používať v prípade že odvodený typ vylepšuje svojho predka.

to znamená že ak chceme vytvoriť tlačítko s obrázkom tak ho odvodíme z tlačítka pričom obrázok bude jedna z vlastností (property) tlačítka:

1class PictureButton : Button
2{
3    public Bitmap Icon { get; private set; }
4    public PictureButton() : base()
5    {
6        Icon = new Bitmap();
7        Icon.Parent = this;
8    }
9}
class PictureButton : Button
{
    public Bitmap Icon { get; private set; }
    public PictureButton() : base()
    {
        Icon = new Bitmap();
        Icon.Parent = this;
    }
}


výhoda je že odvodené obrázkové tlačítko (PictureButton) môžeme použiť všade tam kde aj tlačítko (Button) a kompiler nebude protestovať preto že všetky odvodené typy sú spätne kompatibilné so svojimi predkami, hovorí sa tomu polymorfizmus. (Pozor naopak to nefunguje)

teda ak máme napr. kolekciu tlačítok:

1class ButtonCollection : List<Button>
2{
3}
4 
5var buttons = new ButtonCollection();
6buttons.Add(new Button());
7buttons.Add(new PictureButton());
class ButtonCollection : List<Button>
{
}
 
var buttons = new ButtonCollection();
buttons.Add(new Button());
buttons.Add(new PictureButton());


tak do nej môžme vložiť nie len tlačítka ale aj všetky inštancie tried odvodených od Button. Ak chceme polymorfizmus zabezpečiť aj medzi triedami ktoré nie sú navzájom od seba odvodené musíme použiť rozhrania (interface).
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0