Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Ereditarietà "a cascata"

    Ciao a tutti!!

    volevo un chiarimento se fosse possibile riguardo ad un dubbio che mi è venuto!!
    So che in php non è possibile attuare l'ereditarietà multipla di una classe, cioè una classe non può essere figlia di più di una classe, ma mi chiedo se sia possibile creare un'ereditarietà, per così dire, "a cascata"!!

    Praticamente ciò ce vorrei fare io sarebbe una cosa del genere:

    class A {

    //proprietà e metodi
    }

    class B extends A {

    // proprietà e metodi

    }

    class C extends B {

    //proprietà e metodi

    }

    Con la possibilità di richiamare quindi dalla classe "nonno" un metodo della classe "nipote" normalmente tramite $this->

    Non riuscendo a trovare niente di già scritto sull'argomento nello specifico chiedo a voi chiarimenti in merito. Grazie in anticipo a tutti!!

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    In home di html.it ce un articolo sui traits, novita' molto valida e che colma questo vuoto nn solo del php.
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Certo che si può pasta che i metodi delle classi siano definiti appropriatamente in termini di visibilità. Detto questo però l'ereditarietà multipla è tendenzialmente sconsigliata a meno che non ci sia la reale necessità.

    Non sono sicuro se quello che sto per dirti possa essere applicato al tuo problema e contesto ma se è vero che una classe può estendere solo una classe è altrettanto vero che una classe può però implementare più interfacce.

  4. #4
    In home di html.it ce un articolo sui traits, novita' molto valida e che colma questo vuoto nn solo del php.
    Grazie linoma ma purtroppo per adottare questo sistema devo modificare un bel po' di codice quindi per questo ho deciso di optare per la sintassi da me postata

    Certo che si può pasta che i metodi delle classi siano definiti appropriatamente in termini di visibilità. Detto questo però l'ereditarietà multipla è tendenzialmente sconsigliata a meno che non ci sia la reale necessità.
    Tranquillo _debo, i metodi che richiamo sono tutto public od al limite protected!!
    Il dubbio mi è venuto in fase di compilazione perché con dreamweaver quando nella sottoclasse digito $this-> automaticamente mi escono anche i metodi e le proprietà della classe di partenza, mentre invece nella "sotto-sottoclasse" questo non avviene!!

  5. #5
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Il problema con i traits non è tanto il fatto che tu debba cambiare il codice quando il fatto che tu debba aggiornare PHP con le conseguenza del caso specie se il codice è molto vecchio.

    Ipotizzo sia una limitazione/bug di dreamweaver, prova tu stesso:
    Codice PHP:
    class foo
    {
        protected function 
    _greetings()
        {
            echo 
    'Hello world!';
        }
    }

    class 
    bar extends foo
    {
        protected function 
    _alternativeGreetings()
        {
            echo 
    'Hello user!';
        }
    }

    class 
    baz extends bar
    {
        public function 
    foobar()
        {
            echo 
    $this->_alternativeGreetings();
            echo 
    $this->_greetings();
        }
    }

    $obj = new baz();
    $obj->foobar(); 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.