PHP面向对象-抽象类

2023-04-27 19:54:40 浏览数 (1)

抽象类

抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类可以包含抽象方法和非抽象方法。抽象方法是一种没有具体实现的方法,必须在子类中被实现。非抽象方法是一种有具体实现的方法,可以在子类中被重写或继承。

定义一个抽象类使用 abstract 关键字:

代码语言:javascript复制
abstract class Animal {
    abstract public function makeSound();
}

在上面的示例中,我们定义了一个抽象类 Animal,它包含一个抽象方法 makeSound()。由于这是一个抽象方法,因此我们没有提供具体的实现。

我们可以在子类中实现这个抽象方法:

代码语言:javascript复制
class Dog extends Animal {
    public function makeSound() {
        echo "Woof! Woof!";
    }
}

在上面的示例中,我们定义了一个子类 Dog,它继承了 Animal 抽象类,并实现了 makeSound() 方法。

抽象类还可以包含非抽象方法:

代码语言:javascript复制
abstract class Animal {
    abstract public function makeSound();
    
    public function eat() {
        echo "I am eating";
    }
}

在上面的示例中,我们添加了一个非抽象方法 eat()

抽象类的作用是为子类提供一个通用的模板。我们可以在抽象类中定义一些通用的属性和方法,让子类来实现具体的细节。抽象类也可以限制子类的实现方式,从而确保程序的正确性和安全性。

php

0 人点赞