定义 : 使用abstract关键系修饰的类,表示该类只能被继承**,不能被实例化**
- 抽象类只是用来规范下属的基本结构,本身不可被实例化,抽象类只能被继承
- 抽象类可以被抽象类继承
- abstract可以修饰抽象方法,抽象方法没有实体
- 继承了抽象类的实体类必须定义抽象类的抽象方法
- 抽象类中还可以有实体类该有的任何成员
<?php
abstract class Coder{
// 可以定义普通属性和普通方法
public $name="php";
public function work()
{
return "一个勤苦劳作的码农<br>";
}
// 还可以定义 抽象方法
// 抽象方法前面设置关键词 abstract
abstract public function code($name);
}
// 规则单继承
class PHPCoder extends Coder{
// 类继承了抽象类 可以合法的使用抽象类中的普通方法和属性
// 必须实现抽象类中的抽象方法
public function code($name)
{
return "我是{$this->name}程序员,我在写{$name}<br>";
}
}
// 继承理论上来说可以无限多次
$zhang=new PHPCoder();
echo $zhang->work(); // 继承抽象类中的普通方法
echo $zhang->code("商城项目");