Visualizzazione dei risultati da 1 a 4 su 4

Discussione: override

  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    override

    ciao, ho una classe DBobject con varie funzioni.

    poi ho una classe Sys che estende DBobject.

    voglio poter fare l'override di una funzione "display()" in modo da implementarla in modo diverso per Sys.

    come faccio? non posso far diventare DBobject abstract perché la istanzio!

    help
    alcool: la causa e la soluzione di tutti i problemi

  2. #2

    ........

    Ciao.
    Semplicemente ridefinisci (override)
    il metodo display() nella classe figlia.
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3

    ............

    Ciao.
    A seconda delle necessità puoi utilizzare
    lo scope resolution operator (: in questo
    modo (invece di richiamare la classe con
    il costruttore poi richiamare solamente un
    singolo metodo).

    Codice PHP:
    <?php 
    class basicMessage 
    {
        var 
    $message;
        function 
    basicMessage($message)
        {
            
    $this->message=$message;
        }
        function 
    displayMessage()
        {
            echo 
    'Displaying '.$this->message.' from base class
    '
    ."\n";
        }
    }
    //end basicMessage

    class boldedMessage extends basicMessage 
    {
        function 
    boldedMessage($message)
        {
            
    parent::basicMessage($message);
        }
        
    //override base class displayMessage() method
        
    function displayMessage()
        {
            echo 
    '[b]Displaying '.$this->message.' from subclass[/b]
    '
    ."\n";
        }
    }
    // end boldedMessage

    $obj = new boldedMessage("Hello, I am the child");
    //var_dump($obj);
    $obj->displayMessage();

    ?>

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    facevo cosi.. ma stranamente non andava! poi ho scoperto che l'oggetto istanziato non era il child ma il parent

    errore stupido! ero convintissimo e infatti non capivo perché non faceva l'override! cmq grazie!
    alcool: la causa e la soluzione di tutti i problemi

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.