Perl OOP中的继承详细指南

本文概述

  • 基类和派生类
  • 多级继承
继承是任何类提取和使用其他类的功能的能力。在这个过程中, 新类称为派生类从现有的类创建基类。这里的基本概念是, 程序员能够将一个类的功能用于另一类, 而无需在不同的类中一次又一次地声明或定义相同的事物。不必在每个类声明期间编写成员函数, 我们可以从基类继承那些成员函数。继承是面向对象编程的最重要功能之一。
子类:
从另一个类继承属性的类称为子类或派生类。
超级班:
其属性被子类继承的类称为基类或超类。
继承的最基本概念是使用另一个类作为基础来创建或派生一个新类。
基类和派生类 基类用于派生称为的其他继承子类派生类。一个基类可以有多个派生类, 这种继承类型称为层次继承。这些派生类共享一个父类或基类。如果派生类共享多个父类并从多个父类继承其功能, 则这种继承称为多重继承.
Perl OOP中的继承详细指南

文章图片
上图显示了从基类派生一个类的顺序。每当需要从理论上描述继承顺序时, 都将使用如上图所示的顺序和表示法。
考虑一类车辆。现在, 我们需要为公共汽车, 汽车, 卡车等创建一个类。所有车辆的方法fuelAmount(), capacity(), applyBrakes()都相同。如果我们在不了解继承的情况下创建这些类, 则可以按照下图所示的方式进行:
Perl OOP中的继承详细指南

文章图片
上图显示了没有继承概念的这些类的创建
可以清楚地看到, 上述过程导致相同代码重复3次。这增加了错误和数据冗余的机会。为了避免这种情况, 将使用继承。如果我们创建一个Vehicle类并在其中编写这三个函数, 并从Vehicle类继承其余的类, 那么我们可以简单地避免数据重复并提高可重用性。请看下图, 其中三个类别是从车辆类别继承的:
Perl OOP中的继承详细指南

文章图片
使用继承, 我们只需要编写函数一次, 而不是编写函数三遍, 因为我们已经从基类(Vehicle)继承了其余三个类。
多级继承 Perl中的继承可以有多种类型, 但是多级继承是其中的基础类和派生类组成链的一种。在"多级继承"中, 派生类将继承基类, 并且派生类还充当其他类的基类。在下图中, 类A用作派生类B的基类, 而基类又充当派生类C的基类
Perl OOP中的继承详细指南

文章图片
在Perl中实现继承:
Perl中的继承可以使用包装。包用于创建父类, 可在派生类中使用该父类继承功能。
use strict; use warnings; # Creating parent class package Employee; # Creating constructor sub new { # shift will take package name 'employee' # and assign it to variable 'class' my $class = shift ; my $self = { 'name' => shift , 'employee_id' => shift }; # Bless function to bind object to class bless $self , $class ; # returning object from constructor return $self ; } 1;

上面的代码是基类的定义。这里的基类是雇员数据成员是员工ID和员工名称。父类的代码需要另存为* .pm, 这里我们将其另存为员工。现在, 我们将了解如何从已经声明的基类雇员派生一个类。
# Creating parent class package Department; use strict; use warnings; # Using class employee as parent use parent 'employee' ; 1;

从上面的示例可以看出, 班级部门使用已经声明的班级雇员的特征。因此, 在声明类Department时, 我们没有再次声明所有数据成员, 而是从基类雇员继承了它们。要运行此代码, 请将中间类代码另存为* .pm, 此处将其另存为部门。此类是中间类, 并且将进一步作为以下给定派生文件的父类工作data.pl.
use strict; use warnings; # Using Department class as parent use Department; # Creating object and assigning values my $a = Department-> new( "Shikhar" , 18017); # Printing the required fields print "$a-> {'name'}\n" ; print "$a-> {'employee_id'}\n" ;

输出如下:
Perl OOP中的继承详细指南

文章图片
【Perl OOP中的继承详细指南】因此, 当在大型项目中工作时, 继承起着至关重要的作用, 程序员希望缩短代码。

    推荐阅读