Visualizzazione dei risultati da 1 a 10 su 24

Hybrid View

  1. #1
    In aggiunta a quanto detto da satifal

    Quote Originariamente inviata da madquake Visualizza il messaggio
    1. Se io definisco un metodo completo nella classe astratta devo per forza riscriverlo nella sottoclasse o lo prende di default attraverso l'ereditarietà?
    i metodi vengono sempre condivisi nella classe figlia in base allo specificatore di accesso definito. Public, protected, private.

    2.Per quale motivo dovrei definire classi astratte o interfacce se poi devo comunque riscrivere tutto all'interno delle sottoclassi reali?
    se i metodi sono protected o public non c'è nessun bisogno di riscrivere niente

    Codice PHP:
    abstract class {
       public function 
    getText() {
          return 
    "Hello world!";
       }
    }

    class 
    extends {}

    $b = new B();
    echo 
    $b->getText(); 
    i motivi sono svariati..

    3. Se definisco un costruttore nella classe astratta, e implemento argomenti ecc nel costruttore, devo riscrivere tutto nella sottoclasse o basta che indico l'esistenza del costruttore stesso?
    Codice PHP:
    abstract class {

       private 
    $name;

       public function 
    __construct$name ) {
          
    $this->name $name;
       }

       public function 
    getText() {
          return 
    "Hello $this->name!";
       }
    }

    class 
    extends {}

    $b = new B"Andrea" );
    echo 
    $b->getText(); 
    Questa volta, più che un voto.. è favoreggiamento.

  2. #2
    Utente di HTML.it L'avatar di kingpin
    Registrato dal
    May 2014
    residenza
    London, UK
    Messaggi
    30
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    2.Per quale motivo dovrei definire classi astratte o interfacce se poi devo comunque riscrivere tutto all'interno delle sottoclassi reali?
    Desing del software. Vedi i moduli Zend, Symfony2, Magento.

    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    se i metodi sono protected o public non c'è nessun bisogno di riscrivere niente
    Design del software, ancora una volta. Potresti aver bisogno di fare override di uno o più metodi ereditati.

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.