Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [eredità classi]

  1. #1

    [eredità classi]

    Problema con la segunete classe
    codice:
    class prima  {
    	var $titolo;
    	var $testo;
    	
    	function prima($titolo,$testo)  {
    		$this->titolo = $titolo;
    		$this->testo = $testo; 
    	}
    	
    	function printValuePrima()  {
    	
    		echo $this->titolo." ".$this->testo."
    ";
    	
    	}
    	function returnValue()  {
    		return array($this->titolo,$this->testo);
    	}
    	
    }
    
    class seconda extends prima  {
    	
    	var $altroPar;
    	
    	
    	function seconda($altroPar) {
    	
    		//$this->prima($titolo,$testo);
    		
    		$this->altroPar = $altroPar;
    	}
    
    	function printValueSeconda()  {
    	
    		echo $this->titolo." ".$this->testo." ".$this->altroPar."
    ";
    	
    	}
    	
    }
    
    $prima = new prima("titolo prova","testo prova");
    $prima->printValuePrima();
    
    $seconda = new seconda("altro argomento");
    $seconda->printValueSeconda();

    Cercavo un metodo per ereditare anche il valore delle variabili dichiarate nella prima classe, in pratica vorrei che quando chiamo il metodo printValueSeconda() della seconda classe m i stampi anche le variabili definite nella prima....

    Grazie e scusate la spiegazione con i piedi!!!
    Sono operazioni delicate che devono essere fatte, se necessario, con consapevolezza di cosa si sta facendo per evitare di generare malfunzionamenti o perdite di dati.

    Movimento per la diffusione del fagiano d'altura

  2. #2
    cucù
    Sono operazioni delicate che devono essere fatte, se necessario, con consapevolezza di cosa si sta facendo per evitare di generare malfunzionamenti o perdite di dati.

    Movimento per la diffusione del fagiano d'altura

  3. #3
    Utente di HTML.it L'avatar di blueice
    Registrato dal
    Feb 2001
    Messaggi
    121
    Modifica questo metodo :

    function printValueSeconda() {

    $this->printValuePrima();
    echo $this->titolo." ".$this->testo." ".$this->altroPar."
    ";

    }

    Dovresti però valorizzare anche il valore della classe ereditata nel costrutture della classe figlio.

  4. #4
    ma scusa, non è sufficiente valorizzare nel costruttore della prima classe , da manuale la classe figlia dovrebbe ereditare tutti i metodi e pure le variabili della sua genitrice?

    O forse sbaglio?
    Sono operazioni delicate che devono essere fatte, se necessario, con consapevolezza di cosa si sta facendo per evitare di generare malfunzionamenti o perdite di dati.

    Movimento per la diffusione del fagiano d'altura

  5. #5
    se metti un cotruttore anche nella seconda fai l'override del costruttore della prima che se non viene specificatamente dichiarato o richiamato non verra' preso in considerazione ... tu formi la seconda classe con ('altroPar') e non istanzi la parent o super classe ... e poi stai facendo un po' di confusione ... l' extend su una classe non significa che prima devi dichiarare la classe prima e poi la seconda aspettandoti di avere i parametri di prima anche nella seconda .. questo non ha senso ... se tu istanziassi 3 classi prima e una sola seconda cosa ti aspettersti di trovare in seconda tutti i valori di tutte e tre ???

    Se dici "da manuale" qualche manuale starai leggendo, ecco ... vai avanti oppure se l'hai gia' finito buttalo via
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Se dici "da manuale" qualche manuale starai leggendo, ecco ... vai avanti oppure se l'hai gia' finito buttalo via

    http://www.php.net/manual/en/keyword.extends.php

    The extended or derived class has all variables and functions of the base class

    Ma forse sono io che confondo.....
    Sono operazioni delicate che devono essere fatte, se necessario, con consapevolezza di cosa si sta facendo per evitare di generare malfunzionamenti o perdite di dati.

    Movimento per la diffusione del fagiano d'altura

  7. #7
    Originariamente inviato da Sibelium
    http://www.php.net/manual/en/keyword.extends.php

    The extended or derived class has all variables and functions of the base class

    Ma forse sono io che confondo.....
    si ok, ha le variabili e le funzioni ... ma se tu le scavalchi con l' override del costruttore senza richiamare il costruttore genitore, erediti delle belle variabili vuote o null ... tu vuoi ereditare in automatico un costruttore dichiarandone un altro ... questo non si fa, o meglio, non si fa in questo caso, secondo lo scopo che vuoi raggiungere, vai avanti con la lettura e gli esempi , per ora non ci siamo un granche'
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    io non ne faccio una cosa personale, ma vedo che tu più che aiutare, ti interessa forse di farti vedere superiore....ad ognuno il suo problema!!!
    Sono operazioni delicate che devono essere fatte, se necessario, con consapevolezza di cosa si sta facendo per evitare di generare malfunzionamenti o perdite di dati.

    Movimento per la diffusione del fagiano d'altura

  9. #9
    Originariamente inviato da Sibelium
    io non ne faccio una cosa personale, ma vedo che tu più che aiutare, ti interessa forse di farti vedere superiore....ad ognuno il suo problema!!!
    io ti sto spiegando cosa fai di sbaglito, se questo ti offende son fatti tuoi, addio
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    non vorrei farla lunga, io non mi sono offeso, ma te devi avere un carattere un pò sborò o sbaglio????
    Sono operazioni delicate che devono essere fatte, se necessario, con consapevolezza di cosa si sta facendo per evitare di generare malfunzionamenti o perdite di dati.

    Movimento per la diffusione del fagiano d'altura

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.