<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>类-抽象类/方法</title>
</head>
<body>
<?php
date_default_timezone_set("Asia/Shanghai");
#类-抽象类/方法
abstract class AbstractClass {
// 强制要求子类定义这些方法
abstract protected function getValue();
abstract protected function prefixValue($prefix);
// 普通方法(非抽象方法)
public function printOut () {
echo $this->getValue().'<br>';
}
}
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_').'<br>';
$class2 = new ConcreteClass2();
$class2->printOut();
echo $class2->prefixValue('FOO_');
?>
</body>
</html>