Search
 
SCRIPT & CODE EXAMPLE
 
CODE EXAMPLE FOR PHP

php overriding

Overriding
I metodi definiti in una classe padre, possono essere 
sovrascritti (overriding) in una classe figlia 
e, in questo caso, le funzioni ridefinite avranno 
precedenza su quelle della classe padre. 
Questo metodo è utile se si vuole utilizzare 
la funzionalità del genitore o semplicemente aggiungere 
ulteriori funzionalità nel metodo della sottoclasse. 
Per ridefinire un metodo della superclasse in una sottoclasse, 
si crea semplicemente un metodo nella classe figlia 
con lo stesso nome del metodo della classe padre.

<?php
// dichiarazione della classe Person
class Person {
	public $name;
	// costruttore
	function __construct($name) {
		echo "Chiamata costruttore della Superclasse"."<br>";
		// inizializzazione della proprietà $name
		$this->name = $name;
	}
	// metodi
	function viewHello() {
		echo "Hello ".$this->name."<br>";
	}
}
// definizione della sottoclasse Employees
class Employees extends Person {
	public $profile;
	// costruttore della sottoclasse
	function __construct($name, $profile) {
		parent::__construct($name); // chiamo il costruttore di Person
		$this->profile = $profile;  // inizializzo $profile
	}
	// metodi
	function viewHello() {
		parent::viewHello();
		echo "Profile: ".$this->profile."<br>";
	}
}
$customer = new Person("Giuseppe Rossi");
$customer->viewHello();
$employee = new Employees("Mario Rossi", "Admin");
$employee->viewHello();
?>
Come possiamo notare in questo caso, il metodo viewHello 
di Employees va a sovrascrivere quello di Person. 
Praticamente, il metodo viewHello di Employees 
ignora quello di Person.

Per utilizzare l'istanza $employee al fine di accedere al metodo 
viewHello di Person, utilizziamo la keyword parent, seguita 
dall'operatore di risoluzione di scope ("::") e dal nome 
dell'elemento desiderato. Questo permette di richiamare 
gli elementi della classe genitore direttamente nelle sottoclassi.
Source by www.html.it #
 
PREVIOUS NEXT
Tagged: #php #overriding
ADD COMMENT
Topic
Name
3+5 =