一个抽象类是不能被直接实例化的,必须被子类继承并实现所有的抽象方法之后才能被实例化。在PHP里面,我们可以通过自定义一个抽象类并定义抽象方法来进行实践应用。下面是一个具体程序来理解PHP里面的抽象类。
创建一个抽象类
先创建一个抽象类,这个类里面定义了两个抽象方法,分别是getArea()和getPerimeter(),用于求图形的面积和周长。
abstract class Shape {
abstract public function getArea();
abstract public function getPerimeter();
}
继承抽象类并实现抽象方法
接下来,我们再创建2个子类来继承抽象类Shape,并分别实现getArea()和getPerimeter()方法,求出固定形状图形的面积和周长。以矩形和正方形两种形状为例:
class Rectangle extends Shape {
protected $width;
protected $height;
public function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
public function getArea() {
return $this->width * $this->height;
}
public function getPerimeter() {
return ($this->width + $this->height) * 2;
}
}
class Square extends Shape {
protected $length;
public function __construct($length) {
$this->length = $length;
}
public function getArea() {
return pow($this->length, 2);
}
public function getPerimeter() {
return $this->length * 4;
}
}
实例化子类并调用方法
最后,我们可以实例化子类,并调用方法来进行测试。下面的例子是求出具体的矩形和正方形的面积和周长:
$rectangle = new Rectangle(4, 5);
echo '矩形的面积为:' . $rectangle->getArea() . '<br>';
echo '矩形的周长为:' . $rectangle->getPerimeter() . '<br>';
$square = new Square(5);
echo '正方形的面积为:' . $square->getArea() . '<br>';
echo '正方形的周长为:' . $square->getPerimeter() . '<br>';
输出结果如下:
矩形的面积为:20
矩形的周长为:18
正方形的面积为:25
正方形的周长为:20
通过以上程序,我们就成功的理解了抽象类的基本概念。实现抽象类的过程中,我们定义了一个抽象类,然后定义了两个抽象方法,这个抽象类被继承后,它的子类必须要实现这些抽象方法,否则会编译错误。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过具体程序来理解PHP里面的抽象类 - Python技术站