通过具体程序来理解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开源项目的源码指南

    以下是“学习php开源项目的源码指南”的完整攻略: 一、前置知识准备 在学习一个开源项目的源码前,你需要具备以下知识: PHP编程语言的基础知识 Git的基本使用方法 IDE的使用经验 如果你已经掌握了以上的知识,那么你就可以开始学习php开源项目的源码了。 二、选择并下载PHP开源项目 选择一个自己感兴趣并且合适的PHP开源项目,可以在GitHub上搜索,…

    PHP 2023年5月23日
    00
  • 深入理解php printf() 输出格式化的字符串

    下面是详细的“深入理解php printf() 输出格式化的字符串”的攻略。 简介 printf() 是一种 PHP 输出函数,用于将字符串格式化为指定的格式。可以将变量、数字、字符串等使用一些特殊的字符(称为转换说明符)格式化为不同的类型。 基本使用 基本格式为: printf(format,arg1,arg2,arg3,…); 其中,format 是…

    PHP 2023年5月26日
    00
  • PHP 获取远程文件内容的函数代码

    下面我将为你详细讲解“PHP 获取远程文件内容的函数代码”的完整攻略。 1. 函数说明 PHP 提供了两个内置函数,用于获取远程文件内容: file_get_contents($url): 用于获取远程文件的内容,返回的是字符串类型。 fopen()和fread(): 用于打开远程文件,并读取其中的内容,也返回字符串类型。 两个函数的使用方式略有不同,在下面…

    PHP 2023年5月26日
    00
  • 判断PHP数组是否为空的代码

    判断PHP数组是否为空的代码,可以采用以下两种方式。 第一种方式:使用empty函数 empty函数用于判断一个变量是否为空,包括空数组、空字符串、0和false等等。当变量值为以下几种情况时,empty函数返回true: “” (空字符串) 0 (作为整数的0) 0.0 (作为浮点数的0) “0” (作为字符串的0) false array() (空数组)…

    PHP 2023年5月26日
    00
  • php实时倒计时功能实现方法详解

    下面将详细讲解“php实时倒计时功能实现方法详解”的完整攻略。 1. 基础知识 在实现实时倒计时功能之前,我们需要先掌握一些基础知识。我们需要使用PHP、JavaScript来实现。 PHP:一种脚本语言,通常用于Web开发,可以与HTML相互嵌套使用;JavaScript:一种脚本语言,可以在Web页面中嵌入,并且可以提供页面交互功能。 我们将使用PHP作…

    PHP 2023年5月27日
    00
  • PHP多线程批量采集下载美女图片的实现代码(续)

    下面是讲解“PHP多线程批量采集下载美女图片的实现代码(续)”攻略的完整步骤: 一、前置准备首先我们需要安装扩展,安装php-amqp扩展,这个扩展是使用RabbitMQ必备的,安装方式在官方仓库和pecl都有,我一般使用pecl安装,使用命令“sudo pecl install amqp”,然后在php.ini中添加引入即可。 二、创建消息队列通过Rabb…

    PHP 2023年5月27日
    00
  • 简单谈谈PHP中的include、include_once、require以及require_once语句

    当编写PHP应用程序时,经常需要在一个文件中引用其他文件中定义的函数或类。为此,PHP提供了四种语句:include、include_once、require和require_once。这些语句都可以用来引用一个文件,但它们之间有一些区别,下面将逐一讲解。 include include ‘filename.php’; include语句可以将filenam…

    PHP 2023年5月27日
    00
  • 简单的PHP多图上传小程序代码

    接下来我将为你详细讲解”简单的PHP多图上传小程序代码”的完整攻略。 思路 我们需要完成一个简单的PHP记录多张图片的上传界面。其中我们需要做到以下几点: 上传的图片需要保存在文件夹中。 上传的图片需要做类型判断,只保存指定格式的图片。 上传的图片需要做大小判断,限制图片大小。 黏贴上传和拖拽上传需要支持。 实现步骤 1. 创建上传表单 <form a…

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