abstract class AbstractClass
{
// Force extending class to define this method
abstract protected function getValue();
// Common method
public function printValue() {
echo $this->getValue() . "<br />";
}
}
class Class1_From_AbstractClass extends AbstractClass
{
protected function getValue() {
return "Class1_From_AbstractClass";
}
}
class Class2_From_AbstractClass extends AbstractClass
{
public function getValue() {
return "Class2_From_AbstractClass";
}
}
$class1 = new Class1_From_AbstractClass;
$class1->printValue();
$class2 = new Class2_From_AbstractClass;
$class2->printValue();
/*
run:
Class1_From_AbstractClass
Class2_From_AbstractClass
*/