code.progysm.com

abstract

Type:
	Instruction

Pour les classes:
	Spécifie qu'une classe est abstraite, c'est à dire qu'elle peut être héritée (extends) mais elle ne peut être initialisée avec new.

Exemple:
	abstract class A
	{
	}

	class AA extends A
	{
	}

	// new A; // erreur
	// new AA; // OK

Pour les méthodes:
	Crée une méthode abstraite qui devra être implémenté dans les classes qui en hérite.

Exemples:
	abstract class A
	{
		abstract function test();
	}

	class AA extends A
	{
		function test()
		{

		}
	}

	// 7.2, surchager une méthode abstraite pour une classe abstraite qui hérite d'une class abstraite
	abstract class A
	{
		abstract function test(string $s);
	}

	abstract class AA extends A
	{
		abstract function test($s) : int;
	}

	class AAA extends AA
	{
		function test(string $s) : int
		{
			return 1;
		}
	}