PHP面向对象-类和对象的定义(五)

来源:腾讯云 时间:2023-04-28 13:42:52


(资料图)

5. 多态

多态是面向对象编程中的另一个重要特性,它可以让不同的对象使用相同的方法,但是表现出不同的行为。在PHP中,多态可以通过接口和抽象类来实现。

接口是一种定义规范的抽象类型,它只包含方法的声明,不包含实现。类可以实现一个或多个接口,必须实现接口中声明的所有方法。接口的语法如下:

interface 接口名 {  // 方法声明}

下面是一个接口的示例:

interface Shape {  public function getArea();  public function getPerimeter();}

在这个示例中,我们定义了一个名为Shape的接口,它包含了两个方法getArea()和getPerimeter(),分别用于计算形状的面积和周长。

抽象类是一种包含抽象方法的类,抽象方法只包含方法的声明,不包含实现。子类必须实现抽象类中的所有抽象方法,才能被实例化。抽象类的语法如下:

abstract class 抽象类名 {  // 抽象方法}

下面是一个抽象类的示例:

abstract class Animal {  protected $name; // 动物名称    public function __construct($name) {    $this->name = $name;  }    abstract public function makeSound(); // 抽象方法}

在这个示例中,我们定义了一个名为Animal的抽象类,它包含了一个属性$name和一个构造函数__construct(),以及一个抽象方法makeSound()。子类必须实现makeSound()方法,才能被实例化。

下面是一个多态的示例:

class Circle implements Shape {  private $radius; // 圆半径    public function __construct($radius) {    $this->radius = $radius;  }    public function getArea() {    return pi() * $this->radius * $this->radius;  }    public function getPerimeter() {    return 2 * pi() * $this->radius;  }}class Rectangle implements Shape {  private $width; // 矩形宽度  private $height; // 矩形高度    public function __construct($width, $height) {    $this->width = $width;    $this->height = $height;  }    public function getArea() {    return $this->width * $this->height;  }    public function getPerimeter() {    return 2 * ($this->width + $this->height);  }}function printShapeInfo(Shape $shape) {  echo "Area: " . $shape->getArea() . "
"; echo "Perimeter: " . $shape->getPerimeter() . "
";}$circle = new Circle(5);$rectangle = new Rectangle(3, 4);printShapeInfo($circle);printShapeInfo($rectangle);

在这个示例中,我们创建了一个Circle类和一个Rectangle类,它们都实现了Shape接口。我们还定义了一个函数printShapeInfo(),用于打印形状的面积和周长。在主程序中,我们创建了一个圆形和一个矩形,并分别调用了printShapeInfo()函数,输出了它们的面积和周长。

X 关闭

PHP面向对象-类和对象的定义(五)

多态是面向对象编程中的另一个重要特性,它可以让不同的对象使用相同的方法,但是表现出不同的行为。在PHP

2023-04-28

环球观速讯丨金沙县人力资源和社会保障局地址_金沙县人力资源和社会保障局

1、我觉得应该到户籍所在地派出所开具、打电话咨询下吧~110。本文分享完毕,希望对大家有所帮助。

2023-04-28

“小飞天”奖儿童舞蹈大赛29日举行-环球视点

由山东省文学艺术界联合会、山东省舞蹈家协会主办的山东省第十四届“小飞天”奖儿童舞蹈大赛将于4月29日19:

2023-04-28

环球速看:为什么是翔安!金融界专家这样说→

为什么是翔安!金融界专家这样说→,厦门,科创,金融界,翔安区

2023-04-28

全球信息:俄在红场举行胜利日阅兵首次夜间彩排

根据俄罗斯国防部公布的消息,当地时间4月27日,俄罗斯在莫斯科红场举行纪念卫国战争胜利78周年阅兵的首次

2023-04-28

汽车行业:浙商汽车实验室-4D成像雷达拆解

汽车行业:浙商汽车实验室-4D成像雷达拆解。新闻资讯提供最新、最及时的新闻服务。包括:个股新闻、股票资

2023-04-28

热点在线丨华帝携多款新品亮相AWE2023 用创新书写厨房未来

4月27日-30日,2023中国家电及消费电子博览会(简称“AWE2023”)在上海新国际博览中心举行。本届AWE以“

2023-04-28

银保监会:2023年加力提升小微企业金融服务质量_通讯

银保监会:2023年加力提升小微企业金融服务质量,融资,银保监会,实体经济,中小微企业,金融服务质量,中国银行

2023-04-28

【天天播资讯】滨图审、盈建科与磐晟科技签署三方战略合作协议

4月27日,滨州建筑工程施工图审查中心主任刘立明与磐晟信息科技(青岛)有限公司宫智勇等一行,莅临盈建科

2023-04-28

加开热门线路列车 推出假日公交专线

今年“五一”假期正值春季旅游旺季,公众出行需求将充分释放,高速公路车流量、普通国省干线日均断面流量以

2023-04-28

Copyright ©  2015-2022 科技头条网版权所有  备案号:沪ICP备2022005074号-20   联系邮箱:58 55 97 3@qq.com