“Przeciążenie i nadmierne” Kod odpowiedzi

Przeciążenie i nadmierne

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

Przeciążenie i nadmierne

<?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

Nadrzędne 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

Odpowiedzi podobne do “Przeciążenie i nadmierne”

Pytania podobne do “Przeciążenie i nadmierne”

Więcej pokrewnych odpowiedzi na “Przeciążenie i nadmierne” w PHP

Przeglądaj popularne odpowiedzi na kod według języka

Przeglądaj inne języki kodu