abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:44 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 43. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora IoT pro internet věcí, Fedora Cloud pro cloudové nasazení a Fedora CoreOS pro ty, kteří preferují neměnné systémy. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách Fedora Magazinu: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Silverblue a Fedora Atomic Desktops.

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | IT novinky

    Elon Musk oznámil (𝕏) spuštění internetové encyklopedie Grokipedia (Wikipedia). Zatím ve verzi 0.1. Verze 1.0 prý bude 10x lepší, ale i ve verzi 0.1 je podle Elona Muska již lepší než Wikipedia.

    Ladislav Hagara | Komentářů: 5
    dnes 05:44 | Komunita

    PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.

    Ladislav Hagara | Komentářů: 17
    dnes 04:55 | Nová verze

    Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | IT novinky

    Od 3. listopadu 2025 budou muset nová rozšíření Firefoxu specifikovat, zda shromažďují nebo sdílejí osobní údaje. Po všech rozšířeních to bude vyžadováno někdy v první polovině roku 2026. Tyto informace se zobrazí uživateli, když začne instalovat rozšíření, spolu s veškerými oprávněními, která rozšíření požaduje.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Humor

    Jste nuceni pracovat s Linuxem? Chybí vám pohodlí, které vám poskytoval Microsoft, když vás špehoval a sledoval všechno, co děláte? Nebojte se. Recall for Linux vám vrátí všechny skvělé funkce Windows Recall, které vám chyběly.

    Ladislav Hagara | Komentářů: 1
    včera 16:11 | Komunita

    Společnost Fre(i)e Software oznámila, že má budget na práci na Debianu pro tablety s cílem jeho vyžívání pro vzdělávací účely. Jako uživatelské prostředí bude použito Lomiri.

    Ladislav Hagara | Komentářů: 1
    26.10. 17:11 | IT novinky

    Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.

    Ladislav Hagara | Komentářů: 4
    26.10. 13:33 | Komunita

    Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    25.10. 15:44 | Zajímavý software

    Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (47%)
     (20%)
     (19%)
     (23%)
     (17%)
     (21%)
     (17%)
     (18%)
    Celkem 279 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: PHP OOP dedicnost vs polymorfismus?

    28.9.2020 13:22 Fanda
    PHP OOP dedicnost vs polymorfismus?
    Přečteno: 648×
    Zdravim

    Teprve se vsechno ucim chapat, takze dotaz bude zrejme stejne zmateny jako titulek...

    Dejme tomu, ze mam tridy FyzickaOsoba a PravnickaOsoba, ale chtel bych k nim pristupovat stejnym zpusobem. Tj. jako k tride Osoba a nerozlisovat mezi nimi dokud vylozene nemusim

    Jak to udelat spravne?

    Pomoci interfejsu nebo abstraktni tridy nebo si vystacim s pouhym "extends"...?

    Diky

    Řešení dotazu:


    Odpovědi

    28.9.2020 14:27 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Pokud má každá uvnitř fungovat jinak, tak je nejlepší definovat společné rozhraní a napsat k němu dvě třídy FyzickaOsoba a PravnickaOsoba.

    Pokud však potřebuješ společné některé vlastnosti a hlavně metody, může být namístě definovat společného rodiče Osoba. Je však dobré se vyhnout protected atributům, jinak z toho snadno vznikne guláš. Je lepší, když jsou všechny private.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    28.9.2020 14:46 Fanda
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Diky

    No chtel bych, aby se chovaly vicemene stejne, budou se lisit jen v nekolika atributech a metodach

    Jenomze kdyz budu mit tridu Osoba, ktera bude mit dejme tomu atributy/metody:
    • kontaktni_adresa
    • kontaktni_telefon
    • kontaktni_email
    a z ni podedim tridy PravnickaOsoba a FyzickaOsoba... budu chtit, aby Smlouvu ode me mela jenom >Osoba< a budu chtit, aby budto mela Osoba->dic nebo mela Osoba->rodne_cislo... Proste Smlouvu muze mit jak fyzicka tak i pravnicka osoba a ja to nechci resit (dokud nemusim)

    Zkratka mi hlava nebere jak to udelat :(

    Gréta avatar 28.9.2020 16:22 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?

    nóó vošklivý řešení je tam mit bool jestli je fyzická nebo právnická nebo univerzální string/nějakou svou třídu 'identifikátor'. noa hezký řešení asi takle. phpkář dušan to potom dyštak snad jakoby vopravý/rožšíří nějak :D :D :D :D ;D ;D

    todleto řešení je postavený na funcki get_class hele

    noa jako další možný hezký řešení by asi jako šlo mit ve třídě osoba abstraktní metodu 'identifikuj_se' kterou by si ty děcký voběkty nějak všecky řešily po svým. jak dělat abstraktní třídy/medoty návod třeba tady hele :O ;D

    
    // abstraktní třída osoba
    // tamto 'abstraktní' znamená jakoby jenom to že nejde vyrobit instance tý samotný třídy
    // slovíčko abstract nastrkávej až si budeš uplně jistej tim svým oběkovým návrhem rači 
    class Osoba 
    {  
        private $adresa;
        private $telefon;
        private $mail;
        
        // konstruktor
        function __construct($adresa, $telefon, $mail) {
            $this->adresa = $adresa;
            $this->telefon = $telefon;
            $this->mail = $mail;
        }
        
        // gettry/settry
        
        function set_adresa($adresa) {
            $this->adresa = $adresa;
        }
        function get_adresa() {
            return $this->adresa;
        }
        function set_telefon($telefon) {
            $this->telefon = $telefon;
        }
        function get_telefon() {
            return $this->telefon;
        }
        function set_mail($mail) {
            $this->mail = $mail;
        }
        function get_mail() {
            return $this->mail;
        }
    }
    
    
    class PravnickaOsoba extends Osoba
    {
        private $dic;
        
        function __construct($adresa, $telefon, $mail, $dic){
            //volání konstrukoru rodiče
            parent::__construct($adresa, $telefon, $mail);
            $this->dic = $dic;
        }
        
        function set_dic($dic) {
            $this->dic = $dic;
        }
        function get_dic() {
            return $this->dic;
        }
    }
    
    class FyzickaOsoba extends Osoba
    {
        private $rodneCislo;
        
        function __construct($adresa, $telefon, $mail, $rodneCislo){
            parent::__construct($adresa, $telefon, $mail);
            $this->rodneCislo = $rodneCislo;
        }
        
        function set_rodneCislo($rodneCislo) {
            $this->rodneCislo = $rodneCislo;
        }
        function get_rodneCislo() {
            return $this->rodneCislo;
        }
        
    }
    
    // funkce co dělá že vypiše osobu
    // asi by bylo hežčí udělat to jako statickou funkci tý třídy osoba nebo 
    // eště lepšejc jako nějakou abstraktní metodu 'vypiš' se ve třídě 'Osoba' a děti by si to nějak už zařídili posvým :D ;D
    function vypisOsobu($osoba)
    {
        echo $osoba->get_adresa();
        echo '<br>';
        echo $osoba->get_mail();
        echo '<br>';
        echo $osoba->get_telefon();
        echo '<br>';
    
        //funkce get_class dělá že vrací string s názvem třídy
        // nevim jak moc se muže rtti v php prodražit a jestli by nebylo lepčí
        // řešení mit na to nějakej enum nebo co voni v php maj pokavaď bys
        // měl víc než pár tříd :O :O
        if(get_class($osoba) === 'PravnickaOsoba')
        {
            echo $osoba->get_dic();
        }
        else
        {
            echo $osoba->get_rodneCislo();
        }
        echo '<br>';
    }
    
    // a teďo si to vyskoušíme na pepkoj a jednom takovým podnikateli politickým hádejte hádejte :O :D :D ;D
    $osoba1 = new FyzickaOsoba('pepek novak, pospoloprty', 123456789, 'pepek@seznam.biz','pepkovo rodny cislo');
    
    $osoba2 = new PravnickaOsoba('capak', 257171111, 'posta@vlada.cz', 'CZ46900411');
    
    vypisOsobu($osoba1);
    echo '<br>';
    vypisOsobu($osoba2);
    
    echo '<br><h1>hotovo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</h1>';
    ?> 
    
    
    
    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    Gréta avatar 1.10.2020 14:15 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?

    to co sem fanda psal nebyl spam!!!!!!! :O :O :O :O :O :O :D :D :D :D :D :D

    mi jako jenom taktně naznačoval že mi houby rozumí :D :D ;D ;D

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    2.10.2020 10:08 Ján Dráb | skóre: 4 | Banská Bystrica
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Nejako si pozabudol na existenciu __set() a __get(), ked už píšeš nejaký kód :)
    Everything has room for improvement.
    2.10.2020 11:05 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Celý ten kód je jak z minulého století, takže magické metody bych v něm ani nehledal.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Gréta avatar 2.10.2020 13:44 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?

    tttssssssssssssssssssssssssss náhodou je tam kouzelná metoda __construct :D :D ;D ;D

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    2.10.2020 14:04 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Máš plus body za to, že jsi tam ani jednou nepoužila slovo "protected". V PHP ho nesnáším.

    Ovšem když už tam máš __construct(), k čemu jsou pak ty gettery a settery?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Gréta avatar 2.10.2020 16:17 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?

    slovíčko protected nesnáší každej kdo ho jakoby musel aspoň jednou někde nějak vobcházet nóó takže ho taky nemam moc ráda :D :D ;D ;D

    noa k čemu sou ty gettry/settry???? nóó teďko už vim že takle psaný celkem k ničemu v php :D

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    2.10.2020 17:37 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Rozmyzlam, ze mozno kvoli tomu,ze PHP ma premenne silne polymorne, tak cez set/get vies filtrovat ze da spravny typ. Ak das nevhodny objekt (nie je instanciou tej triedy ktoru potrebujes), tak vychodis chybu/warning.
    debian.plus@protonmail.com
    2.10.2020 18:20 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Faktem je, že obvykle nedostávám ani noticky, i když je mám zapnuté.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Gréta avatar 3.10.2020 14:49 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?

    toldeto se už +- řikalo hele vlákno :D ;D kit tam řikal víc důvodů proč si myslí že to v php neni zase tak důležitý mit tam typy

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    3.10.2020 15:18 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Typy nejsou důležité. Nejsou ani samospasitelné, protože není problém napsat program typově správně, ale ve výsledku zcela blbě.

    Práce v typově slabém jazyce však vyžaduje jiný přístup, než práce v typově silném. Pokud je u nábytku místo výšky uvedeno "na objednávku", tak to ničemu nemusí vadit. Pokud tam však má být počet kusů, tak je namístě v konstruktoru ošetřit, že na vstupu má být kladný int, který nebude větší, než určitý limit, případně ještě omezený stavem skladu. Všimněte si, že na tohle většina programovacích jazyků ani typ nemá, ale databáze ho mají. Proč to nesvěřit databázi, když to umí?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    2.10.2020 11:57 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    debian.plus@protonmail.com
    Gréta avatar 2.10.2020 13:43 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?

    to sem teda jako nepozabudla sem to totiž jako vůůůůbec nikdy neslyšela že v php takovej rovnák na vohejbák existuje :D :D ;D ;D

    btw jak efektivně v takovým gettru/settru vynutíš datovej typ anižbys ho buť při každým voláním nastavoval nebo v tý __set měl třeba nějakej switch/case a podle ména cpal typy?? :O :O třeba tenleten příklad hele přectav si žeti tam někdo skusí do tý tvý proměný height narvat string :O ;D

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    2.10.2020 13:58 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    A čemu to vadí? Pokud je to specifikace nábytku v katalogu, tak tam může nacpat i měrnou jednotku. Jistě, je dost případů, kdy potřebuješ int a ten si ošetříš dle potřeby. Ovšem to ti třeba MySQL udělá také a navíc bez starostí.

    V PHP se o typy moc starat nemusíš, pokud nechceš. V Javascriptu na typy dlabou úplně a nikomu to nevadí.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Gréta avatar 2.10.2020 16:26 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?

    se řiká že prej se nikdy nesmí veřit uživateloj nóó tak mi připadá takový jakože logický hlídat si ty typy kromě před databází taky hnedka navstupu. typy se taky hoděj protože proměnou de blbě pomenovat a pak nemusí bejt jasný co obsahuje. navíc na pozadí všecky ty proměný maj nějakej typ a nemit nad tim možnost kontroly mi připadá takový divný :D

    V Javascriptu na typy dlabou úplně a nikomu to nevadí.

    nóó asi nevadí ale s vyjímkou lidí co si vyrobili typescript :O :D :D ;D

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    2.10.2020 17:16 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Databáze si to dokáže ošéfovat sama, vstupy není třeba hlídat. Dělal jsem na appce, kde se vstupní data kontrolovala celkem 4×, z toho 3× zbytečně a pak to teprve šlo do databáze. Šéf to nařídil... A stejně to bylo blbě. Kdyby místo 4 povrchních kontrol byla jedna důkladná, tak s tím nebyly potíže.

    Data na vstupu zásadně nekontroluji, to dělá až business vrstva, která nejen kontroluje jejich formální správnost, ale dokáže vyhodnotit i případnou kolizi s jinými daty a takový vstup odmítnout.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    28.9.2020 16:30 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Proč bych měl do třídy Osoba dávat kontaktní adresy? Udělej si na to další třídu.

    Proč tam chceš rodné číslo u fyzické osoby? Myslíš si, že ti ho ta fyzická osoba dá?

    Tyhle věci navrhuji vždy směrem od databáze, tedy nejprve datovou strukturu a k tomu v PHP udělám vazbu s uživatelem. Nakonec zjistíš, že ti stačí jediná třída Osoba, ke které přidáš tabulku a třídu Kontakt, případně další tabulku a třídu Smlouva.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    28.9.2020 17:47 Fanda
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    No beru to tak, ze osoba muze mit nepreberne telefonnich cisel, emailu a adres, takze to resim vztahem has_and_belongs_to_many

    Ale vzdycky muze mit (pro me) jen jednu kontaktni adresu, telefon a email. Tak proc nemit v tabulce "osoby" odkazy na vsechny tyhle has_one vazby?

    28.9.2020 19:23 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Také nemusí mít žádnou adresu.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    Gréta avatar 1.10.2020 14:25 Gréta | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?

    'takže todleto si kupujeme na firmu noa támhleto si kupuju jenom na sebe. mail telefoní číslo a dodací adresu použijte v obou případech stejnou přece to nebudete posílat ve dou balících a mi si to už nějak poznáme nóó a kdyby byly problémky tak volejte na jedno z těhletěch dejme tomu pěti čísel mě asi nezastihnete ale von to věčinou vždycky někdo veme a převezme balík. noa kdyby přeci ne tak nechte balik u pani sousedky vomáčkový ve vedlejším baráku my sme tak domluvený že ji pak po někom pošlu peníze' :D :D ;D ;D

    stasi se probouzí 🕵️🇩🇪 indové říděj🚚🇮🇳 plavba🍉🛶
    1.10.2020 20:09 Fanda
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Ty poslys, Greto, kdyz uz jsi takovy vtipny, chytry a velkouzasnolepy... Vysvetli mi jeste k cemu jsou Interfaces

    Interface prece znamena rozhrani, ne? A da se to nejak pouzit proti cizi knihovne?

    Kdyz budu chtit pouzit nejakou "vendor" knihovnu, tak je pro me prece lepsi si mezi svoji aplikaci a tu knihovnu dat rozhrani, ne? Kde si nadefinuju vlastni metody a moje aplikace bude volat jenom tyhle vlastni metody

    Takze kdyz se autor te cizi knihovny rozhodne vsechno prekopat, nebo kdyz se rozhodnu tuhle knihovnu nahradit jinou, tak mi staci prepsat jenom to rozhrani, kdyz zachovam nazvy metod a parametry, a na zbytek aplikace nemusim sahnout. Je tak?

    Ale k tomu mi prece staci vytvorit si vlastni zdedenou tridu, ne? Neco jako:

    class DatumCas extends DateTimeImmutable

    Ja myslel, ze na to je prave to "Interfaces", ale zatim co koukam na priklady, tak kazdy dela Interface jenom vuci vlastnim tridam

    Nebo mi neco unika?

    A sarkasmem klidne nesetri, jenom ho prosim neaplikuj tolik, ze ti neni rozumet

    Diik ;)
    1.10.2020 21:00 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    To jsi zhruba popsal návrhový vzor Adaptér. Je velmi užitečný a používám ho docela často. Dědičnost zde obvykle nemá využití - zejména proto, že tvůrci takových knihoven s oblibou své třídy označují jako "final".

    Samotné rozhraní funguje trochu jinak. Je to jen seznam metod s parametry a konstant, které mají obě strany používat. Není přítomna žádná implementace. Tvůrce knihovny by takové rozhraní měl vytvořit a ty bys ho měl implementovat podle svých potřeb.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    1.10.2020 21:31 Fanda
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Tedy mam tomu rozumet tak, ze kdyz tvurce knihovny vytvori Interface, tak by tento nemel menit, jakkoli bude aktualizovat svoji knihovnu?

    A ja si mam ke svym tridam vytvaret a dodrzovat vlastni Interfacy proto, abych nemusel vsechno prepisovat, kdyz se mi zamane neco v tech tridach zmenit?

    Je-li tak, asi se mi zacina casit v makovici...

    Tisicere Diky!
    1.10.2020 21:55 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Ano, to rozhraní by měnit neměl, alespoň ne v minoritních verzích.

    Ano, je rozumné si vytvářet vlastní rozhraní, abys kdykoli mohl zaměnit třídy, které to rozhraní implementují. Mám například třídy Author a Book, které mají stejné rozhraní a díky tomu mohu s jejich instancemi pracovat jednotně. Navíc můžu kdykoli přidat třeba třídu Article se stejným rozhraním a na zbytku aplikace nemusím nic měnit. Velmi to tu aplikaci zjednoduší.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    1.10.2020 22:24 Fanda
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Tyy jo, ta uleva... tusim se tomu rika "AHA efekt" a je to tak prijemny!

    Ty bys mel, Kite, psat tutorialy!

    Jeste jednou diky vsem a dobrou noc

    1.10.2020 22:58 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Vysvetli mi jeste k cemu jsou Interfaces 
    Vo svete PHP nie je oficialne nic take. Ale vo svete Java, trieda moze dedit iba z jedneho rodica. Ak chces viac (co napr. v C++ ide), tak musis pouzivat v Jave rozhranie (a je to nieco ine ako trieda, aj ked dost blizko).
    debian.plus@protonmail.com
    1.10.2020 23:39 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Trochu jsi zaspal dobu. V PHP je interface i dědičnost. Jen tam není (vcelku zbytečná) dědičnost od více rodičů. Některým ta vícenásobná dědičnost chybí až tak, že ji nahrazují (více či méně úspěšně) pomocí trait.

    Interfaces v žádném případě nenahrazují vícenásobnou dědičnost. Mají zcela jiný účel.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    2.10.2020 11:59 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    PHP neviem, kedze PHP pouzivam ako procedurove/strukturove. Ok, mas pravdu. V PHP je nativne aj rozhranie.
    debian.plus@protonmail.com
    2.10.2020 12:41 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Jenom škoda, že hned ten první příklad je celý blbě. Správně je pouze syntakticky a občas může i fungovat. Vůbec však nerespektuje současné konvence.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    2.10.2020 14:16 Fanda
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Kdybys mel cas a chut, alespon v hrubych obrysech, uvest jak by ten prvni priklad mel vypadat, vubec bych se nezlobil

    Panbu ti to ;)
    2.10.2020 14:31 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP OOP dedicnost vs polymorfismus?
    Zkusím jim to tam opravit, snad ten patch projde.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.