通过具体程序来理解PHP里面的抽象类

一个抽象类是不能被直接实例化的,必须被子类继承并实现所有的抽象方法之后才能被实例化。在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技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • php中cookie与session的区别点总结

    下面是“php中cookie与session的区别点总结”的详细攻略: 一、概述 Cookie和Session都是Web开发中的常用会话技术,用于保存用户的状态信息; Cookie是在客户端(浏览器)保存,在每次HTTP请求中都会发送给服务器; Session是在服务端保存,客户端(浏览器)只保存一个来自服务端的Session ID,每次请求时将Sessio…

    PHP 2023年5月24日
    00
  • 利用php输出不同的心形图案

    以下是利用PHP输出不同心形图案的完整攻略: 准备工作 首先需要安装PHP环境。如果您已经完成了安装,可以开始下一步。 实现过程 1. 创建一个HTML页面 在你的本地计算机上创建一个HTML文件index.html,用以下代码进行文件的基本定义和HTML结构的编写: <!DOCTYPE html> <html> <head&g…

    PHP 2023年5月26日
    00
  • PHP 类相关函数的使用详解

    首先,我们需要明确什么是PHP类。在面向对象的编程中,类是一种封装数据和方法的结构。PHP 提供了许多相关函数,来帮助我们创建、使用和操作类。下面我们就来详细讲解一下 PHP 类相关函数的使用。 类的创建和访问 创建一个类可以使用关键字 class,通过 new 关键字来实例化一个对象,使用箭头符号 -> 来访问对象的成员属性和方法。 class Pe…

    PHP 2023年5月27日
    00
  • 保护你的Sqlite数据库(SQLite数据库安全秘籍)

    下面是详细的攻略: 1. 禁止直接暴露SQLite数据库文件 SQLite数据库默认情况下是以文件形式保存在本地计算机上的,因此为了确保数据库的安全性,我们需要考虑到防止相应的文件被攻击者窃取或者恶意篡改。因此,我们应该采取以下措施来禁止直接暴露SQLite数据库文件。 尽量不要将SQLite数据库文件存放在Web服务器的根目录下。 在应用程序中,需要采取措…

    PHP 2023年5月27日
    00
  • PHP _construct()函数讲解

    PHP _construct()函数讲解 概述 __construct()是PHP中的一个魔术方法(Magic Method)。魔术方法是PHP中的一类预定义方法,它们以双下划线开头和结尾(如__construct())。 __construct()是一个类的构造函数,当一个对象被创建时,如果在该类中定义了构造函数,则该构造函数会被自动调用。 语法 publ…

    PHP 2023年5月25日
    00
  • 解析PHP中数组元素升序、降序以及重新排序的函数

    当我们需要对 PHP 中的数组元素进行排序时,我们可以使用 PHP 提供的一些函数来完成。下面是三个常用的函数,用于对数组进行排序: 1. sort 函数 sort 函数用于对数组进行升序排序,函数原型如下: sort (array &$array, int $sort_flags = SORT_REGULAR) : bool 其中,$array 是…

    PHP 2023年5月26日
    00
  • PHP实现上传文件并存进数据库的方法

    具体步骤: (1)前端代码中添加表单,设置enctype=”multipart/form-data”,用于上传文件 (2)后端代码中获取上传文件的相关信息,保存到服务器 (3)将文件的相关信息存储到数据库中 具体实现步骤如下: (1)前端代码 <form method="post" action="upload.php&q…

    PHP 2023年5月27日
    00
  • PHP实现的获取文件mimes类型工具类示例

    下面我会详细讲解“PHP实现的获取文件mimes类型工具类示例”的完整攻略,并提供两条示例。 1. 什么是MIMEs类型 在计算机网络中,MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)类型是一种标准,用于表示文档文件的性质和格式。它在HTTP协议中定义了一种方式,表示发送的数据类型。通俗描述,就是…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部