diff --git a/language/oop5/abstract.xml b/language/oop5/abstract.xml index bc8b050812..d5c336951d 100644 --- a/language/oop5/abstract.xml +++ b/language/oop5/abstract.xml @@ -1,13 +1,14 @@ - + Object Abstraction - PHP 5 introduces abstract classes and methods. An abstract - method only declares the method's signature and does not provide an - implementation. A class that contains abstract methods needs to be declared - abstract. + PHP 5 introduces abstract classes and methods. It is not allowed to create + an instance of a class that has been defined as abstract. Any class that + contains at least one abstract method must also be abstract. Methods + defined as abstract simply declare the method's signature they cannot + define the implementation. @@ -15,26 +16,48 @@ getValue(); } + } -$o = new ImplementedClass; -$o->test(); +class ConcreteClass1 extends AbstractClass { + + protected function getValue() { + return "ConcreteClass1"; + } + +} + +class ConcreteClass2 extends AbstractClass { + + protected function getValue() { + return "ConcreteClass2"; + } + +} + +$class1 = new ConcreteClass1; +$class1->print(); + +$class2 = new ConcreteClass2; +$class2->print(); ?> ]]> - Abstract classes cannot be instantiated. Old code that has no user-defined - classes or functions named 'abstract' should run without modifications. + Old code that has no user-defined classes or functions named + 'abstract' should run without modifications.