首页 > 编程笔记 > PHP笔记 阅读:2

PHP中的abstract抽象类(附带实例)

抽象类是一种特殊的类,用于定义某种行为,具体的实现需要子类完成。

例如,完成跑步有多种方式,如基础跑、长距离跑、减速跑等。此时,可以定义跑步类为抽象类,将基础跑这些实现方式定义为抽象方法。

PHP 中,使用 abstract 关键字定义抽象类和抽象方法,基本语法格式如下:
abstract class 类名                     // 定义抽象类
{
    abstract public function 方法名();  // 定义抽象方法
}
从上述语法可以看出,抽象类和抽象方法的定义都很简单。在使用 abstract 修饰类或方法时还应注意以下6点:
  1. 抽象方法是特殊的方法,只有方法定义,没有方法体;
  2. 含有抽象方法的类必须被定义成抽象类;
  3. 抽象类中可以有非抽象方法、属性和常量;
  4. 抽象类不能被实例化,只能被继承;
  5. 子类实现抽象类中的抽象方法时,访问控制修饰符必须与抽象类中的一致或者更宽松;
  6. 子类继承抽象类时必须实现抽象方法,否则也必须定义成抽象类,由下一个继承类来实现。

为了让读者更好地理解抽象类和抽象方法,下面演示抽象类和抽象方法的使用,具体代码如下:
abstruct class Human
{
    abstruct protected function eat();
}
abstruct class Man extends Human {}
class Boy extends Man
{
    public function eat()
    {
        echo 'eat';
    }
}
上述代码中:
通过上述代码可以看出,实现抽象方法时,需要保证实现方法和抽象方法的访问权限一致,或实现方法的访问权限比抽象方法的访问权限更加开放。

相关文章