首页 > 编程语言 >PHP抽象类的使用

PHP抽象类的使用

时间:2024-03-09 16:11:22浏览次数:26  
标签:makeSound name 子类 Cat 使用 抽象类 PHP 属性

1、定义抽象类:使用abstract关键字定义一个抽象类。抽象类中可以包含抽象方法、普通方法和属性。例如:

abstract class Animal {
    protected $name;
    abstract public function makeSound();
    
    public function setName($name) {
        $this->name = $name;
    }
}

在上面的例子中,Animal是一个抽象类,它包含了一个抽象方法makeSound()和一个普通方法setName()。

2、继承抽象类:创建一个子类,并使用extends关键字继承抽象类。子类必须实现抽象类中的所有抽象方法。例如:

class Cat extends Animal {
    protected $name = "Test";
    public function makeSound() {
        echo "Meow";
    }
}

//Cat类继承了Animal抽象类,并在Cat类中重新定义了$name属性并赋值为"Test"。
//需要注意的是,重新定义和初始化属性只会在子类中生效,不会影响抽象类中的同名属性。每个类都有自己独立的属性。

在上面的例子中,Cat是Animal的子类,它实现了抽象方法makeSound()。

实例化子类:可以实例化子类对象,使用子类中定义的方法和属性。例如:

$cat = new Cat();
$cat->setName("Tom");
$cat->makeSound();  // 输出:Meow
  • 在上面的例子中,我们创建了一个Cat对象,并调用了setName()方法给猫取名为"Tom",然后调用了makeSound()方法输出猫的声音。

  • 需要注意的是,抽象类不能直接实例化,只能被继承和实现。只有子类实例化后,才能使用抽象类中定义的方法和属性。

  • 抽象类的作用在于提供了一种通用的模板,定义了一组相关的方法和属性,供子类继承和实现。通过抽象类,可以规范子类的行为,并提高代码的灵活性和可扩展性。

标签:makeSound,name,子类,Cat,使用,抽象类,PHP,属性
From: https://www.cnblogs.com/douyuanjun/p/18062869

相关文章

  • 云打印软件免费版在哪?云打印服务怎么使用?
    随着新的一年的到来,很多同学们又开始准备着新一轮的学习冲刺了。在学习的旅途中,打印资料的需求必然伴随着每一个人,但是线下打印店价格贵、打印不方便、没时间去打印等多种因素总是制约着我们。在这种情况下,云打印软件和云打印服务自然就成为了同学们的不二之选。那么云打印软件免......
  • Qt 使用第三方libmodbus库实现Modbus通讯
    之前发表的Modbus通讯程序使用了QT自带的Modbus库,由于QT自带库的数据响应使用的是信号和槽来实现的,所以在一些读写频率较高的场景下,会引发很多异常问题,此篇文章使用C语言写的第三方Modbus库来实现modbus通讯。 经程序运行测试,调用该库进行modbus通讯完虐QT自带mosbus库。......
  • Vue — 监听器(watch)使用
    在Vue.js中,watch选项用于监视数据的变化,并在数据变化时执行相应的操作。watch可以监视一个或多个数据的变化,当被监视的数据发生变化时,可以触发预定义的回调函数。一、简单写法<textareaname=""id=""cols="30"rows="10"v-model="word"></textarea>watch:{......
  • 【Python使用】python高级进阶知识md总结第1篇:My Awesome Book【附代码文档】
    python高级进阶全知识知识笔记总结完整教程(附代码资料)主要内容讲述:MyAwesomeBook,MyAwesomeBook。MyAwesomeBook,MySQL数据库。MyAwesomeBook,聚合函数。MyAwesomeBook,创建表并给某个字段添加数据。MyAwesomeBook,闭包。MyAwesomeBook,路由列表功能开发。MyAwesomeBoo......
  • 03_vim编辑器的使用
    vim编辑器的使用1.什么是vim?vim是一个文本编辑器,类似于win上的wps。2.为什么要学习vim?因为几乎每一个发行版都有vim/vi编辑器,嵌入式Linxu上通常也会集成vim。3.vi和vim的关系?vim是vi的加强版。4.怎么打开vi编辑器?直接在控制台输入命令:vifilename如果当前路径没......
  • 学习unigui【23】uniDBGrid的使用摘要
    Unidbgrid自动调整列宽UniDBGrid1->ClientEvents->ExtEvents[Ext.data.Store[store]]addstore.loadfn:functionstore.load(sender,records,successful,eOpts){sender.grid.columnManager.columns.forEach(function(col){col.autoSize()})}UniDBGrid1.......
  • 【Winform】Button使用汇总
    一、利用委托异步实现Button长按循环执行事件来源:C#Winform利用委托异步实现Button长按,TextBox内值累加累减,弹起停止_c#根据按钮按下和弹起委托-CSDN博客boolisAddMouseDown=false;//加按钮是否按下doublethisSetValue=0D;......
  • 使用Tokeniser估算GPT和LLM服务的查询成本
    将LLM集成到项目所花费的成本主要是我们通过API获取LLM返回结果的成本,而这些成本通常是根据处理的令牌数量计算的。我们如何预估我们的令牌数量呢?Tokeniser包可以有效地计算文本输入中的令牌来估算这些成本。本文将介绍如何使用Tokeniser有效地预测和管理费用。大语言模型(如GPT)......
  • 通达信蓄势盘龙主图指标公式有使用方法源码
    {通达信蓄势盘龙主图指标公式有使用方法源码}指标使用方法:本指标是主图指标,黄线是天,股价到达这个位置容易受阻,下跌到绿色低线是抄底,在支撑线有支撑也是买点DRAWGBK(CLOSE>0,RGB(20,0,28),RGB(20,0,28),0,0,1);X_1:=120;X_2:=BARSLAST(CURRBARSCOUNT=X_1);X_3:=CO......
  • 虚幻PCG——基础使用
    介绍PCG(程序化生成系统)是一种程序化生成系统,主要是地编美术使用,用于制作量大但重复性高的场景。PCG系统中核心部分是被称之为PCG图表的编辑器,这个工具是一种类似于蓝图系统的工具。概览基础使用案例在这个案例中,我们需要使用PCG系统制作一个树木生成的PCG图表达成的效果1......