1 抽象类 关键字 abstract
2 类中只要有一个方法声明为abstract的抽象方法,那么这个类就必须声明为抽象类
3 抽象方法只允许有方法声明与参数列表,不允许有方法体
4 抽象方法的不确定性,所以抽象类禁止实例化,仅允许继承关键字extends来实例化
5 抽象类的子类中,必须将抽象类中的所有抽象方法全部实现
6 子类成员的访问限制级别必须等于或小于抽象类的约定,例如抽象类是protected,子类必须是protected 或者 public 不允许是private
7.子类方法参数必须与抽象类方法参数完全一致,但允许增加默认参数
abstract class Fruits{ //水果名称 protected $name; //抽象方法 abstract public function eat(); //尽管不能直接实例化抽象类,但仍然可以有构造方法 public function __construct() { return '抽象类构造器,实例化时自动调用<br>'; } } //实际开发中应该为每一个类创建独立的类文件 class Apple extends Fruits{ protected $name = '苹果'; public function eat() { return $this->name.'可以直接吃'; } //子类构造函数 public function __construct() { echo parent::__construct(); } } $apple = new Apple; echo $apple->eat();