PHP抽象类的使用

1、定义抽象类:使用abstract关键字定义一个抽象类。抽象类中可以包含抽象方法、普通方法和属性。例如:

abstract class Animal {
    protected $name;
    abstract public function makeSound();
    
    public function setName($name) {
        $this->name = $name;
    }
}

在上面的例子中,Animal是一个抽象类,它包含了一个抽象方法makeSound()和一个普通方法setName()。

2、继承抽象类:创建一个子类,并使用extends关键字继承抽象类。子类必须实现抽象类中的所有抽象方法。例如:

class Cat extends Animal {
    protected $name = "Test";
    public function makeSound() {
        echo "Meow";
    }
}

//Cat类继承了Animal抽象类,并在Cat类中重新定义了$name属性并赋值为"Test"。
//需要注意的是,重新定义和初始化属性只会在子类中生效,不会影响抽象类中的同名属性。每个类都有自己独立的属性。

在上面的例子中,Cat是Animal的子类,它实现了抽象方法makeSound()。

实例化子类:可以实例化子类对象,使用子类中定义的方法和属性。例如:

$cat = new Cat();
$cat->setName("Tom");
$cat->makeSound();  // 输出:Meow
  • 在上面的例子中,我们创建了一个Cat对象,并调用了setName()方法给猫取名为"Tom",然后调用了makeSound()方法输出猫的声音。

  • 需要注意的是,抽象类不能直接实例化,只能被继承和实现。只有子类实例化后,才能使用抽象类中定义的方法和属性。

  • 抽象类的作用在于提供了一种通用的模板,定义了一组相关的方法和属性,供子类继承和实现。通过抽象类,可以规范子类的行为,并提高代码的灵活性和可扩展性。

posted @ 2024-03-09 16:07  窦戈  阅读(57)  评论(0编辑  收藏  举报