“перегрузка и переопределение в PHP” Ответ

перегрузка и переопределение в PHP

class Shape {
   const Pi = 3.142 ;  // constant value
  function __call($functionname, $argument){
    if($functionname == 'area')
    switch(count($argument)){
        case 0 : return 0 ;
        case 1 : return self::Pi * $argument[0] ; // 3.14 * 5
        case 2 : return $argument[0] * $argument[1];  // 5 * 10
    }

  }

 }
 $circle = new Shape();`enter code here`
 echo "Area of circle:".$circle->area()."</br>"; // display the area of circle Output 0
 echo "Area of circle:".$circle->area(5)."</br>"; // display the area of circle
 $rect = new Shape();
 echo "Area of rectangle:".$rect->area(5,10); // display area of rectangle
Tyagi420

перегрузка и переопределение в PHP

<?php

class Foo {
   function myFoo() {
      return "Foo";
   }
}

class Bar extends Foo {
   function myFoo() {
      return "Bar";
   }
}

$foo = new Foo;
$bar = new Bar;
echo($foo->myFoo()); //"Foo"
echo($bar->myFoo()); //"Bar"
?>
Tyagi420

PHP переоценивает

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.
Enrybi

Ответы похожие на “перегрузка и переопределение в PHP”

Вопросы похожие на “перегрузка и переопределение в PHP”

Больше похожих ответов на “перегрузка и переопределение в PHP” по PHP

Смотреть популярные ответы по языку

Смотреть другие языки программирования