创建一个PHP文件,首先声明一个名为Shape的抽象类,然后以Shape作为基类来创建派生类 Triangle和Rectangle,用于计算长方形和三角形的面积
时间: 2023-11-28 18:48:24 浏览: 118
声明抽象基类
以下是实现所需的 PHP 代码:
```php
<?php
// 定义抽象类 Shape
abstract class Shape {
abstract protected function getArea();
}
// 定义 Triangle 类
class Triangle extends Shape {
private $base;
private $height;
public function __construct($base, $height) {
$this->base = $base;
$this->height = $height;
}
public function getArea() {
return 0.5 * $this->base * $this->height;
}
}
// 定义 Rectangle 类
class Rectangle extends Shape {
private $width;
private $height;
public function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
public function getArea() {
return $this->width * $this->height;
}
}
// 实例化 Triangle 和 Rectangle
$triangle = new Triangle(5, 10);
$rectangle = new Rectangle(5, 10);
// 输出计算结果
echo "Triangle area: " . $triangle->getArea() . "<br>";
echo "Rectangle area: " . $rectangle->getArea();
?>
```
在上述代码中,我们首先定义了一个名为 Shape 的抽象类,并声明了一个抽象方法 getArea()。接着,我们创建了两个派生类 Triangle 和 Rectangle,它们都继承了 Shape 类,并实现了 getArea() 方法以计算它们的面积。最后,我们实例化了 Triangle 和 Rectangle 类,并分别调用它们的 getArea() 方法,输出了计算结果。
注意,由于 Shape 类是抽象类,因此不能直接实例化,只能被用作基类。此外,由于 Triangle 和 Rectangle 类都继承了 Shape 类,它们必须实现 Shape 类中声明的抽象方法 getArea(),否则会报错。
阅读全文