PHP 5 ֧�ֳ�����ͳ���������Ϊ�������ܱ�ʵ�������κ�һ���࣬���������������һ�������DZ�����Ϊ����ģ���ô�����ͱ��뱻����Ϊ����ġ�������Ϊ����ķ���ֻ������������÷�ʽ�������������ܶ��������Ĺ���ʵ�֡�
�̳�һ���������ʱ��������붨�常���е����г��������⣬��Щ���������ʿ������������һ�������߸�Ϊ���ɣ�������ij������������Ϊ�ܱ����ģ���ô������ʵ�ֵķ�����Ӧ������Ϊ�ܱ����Ļ��߹��еģ������ܶ���Ϊ˽�еġ����ⷽ���ĵ��÷�ʽ����ƥ�䣬�����ͺ����������������һ�¡����磬���ඨ����һ����ѡ�����������������������û�У������ߵ���������ͻ�� ��Ҳ������ PHP 5.4 ��Ĺ��캯������ PHP 5.4 ֮ǰ�Ĺ��캯���������Բ�һ���ġ�
Example #1 ������ʾ��
<?php
abstract class AbstractClass
{
// ǿ��Ҫ�����ඨ����Щ����
abstract protected function getValue();
abstract protected function prefixValue($prefix);
// ��ͨ�������dz�����
public function printOut() {
print $this->getValue() . "\n";
}
}
class ConcreteClass1 extends AbstractClass
{
protected function getValue() {
return "ConcreteClass1";
}
public function prefixValue($prefix) {
return "{$prefix}ConcreteClass1";
}
}
class ConcreteClass2 extends AbstractClass
{
public function getValue() {
return "ConcreteClass2";
}
public function prefixValue($prefix) {
return "{$prefix}ConcreteClass2";
}
}
$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";
$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."\n";
?>
�������̻������
ConcreteClass1 FOO_ConcreteClass1 ConcreteClass2 FOO_ConcreteClass2
Example #2 ������ʾ��
<?php
abstract class AbstractClass
{
// ���ǵij�������Ҫ������Ҫ�IJ���
abstract protected function prefixName($name);
}
class ConcreteClass extends AbstractClass
{
// ���ǵ�������Զ��常��ǩ���в����ڵĿ�ѡ����
public function prefixName($name, $separator = ".") {
if ($name == "Pacman") {
$prefix = "Mr";
} elseif ($name == "Pacwoman") {
$prefix = "Mrs";
} else {
$prefix = "";
}
return "{$prefix}{$separator} {$name}";
}
}
$class = new ConcreteClass;
echo $class->prefixName("Pacman"), "\n";
echo $class->prefixName("Pacwoman"), "\n";
?>
�������̻������
Mr. Pacman Mrs. Pacwoman
�ϴ��������û���Զ��������������Ϊ"abstract"����Ӧ���ܲ����ĵ��������С�