Perl 中的方法覆蓋


您可以在子類中新增額外的函式,也可以在其父類中新增或修改現有方法的功能。它可以按如下方式完成 −

#!/usr/bin/perl
package Employee;
use Person;
use strict;
our @ISA = qw(Person);    # inherits from Person
# Override constructor
sub new {
   my ($class) = @_;
   # Call the constructor of the parent class, Person.
   my $self = $class->SUPER::new( $_[1], $_[2], $_[3] );
   # Add few more attributes
   $self->{_id} = undef;
   $self->{_title} = undef;
   bless $self, $class;
   return $self;
}
# Override helper function
sub getFirstName {
   my( $self ) = @_;
   # This is child class function.
   print "This is child class helper function\n";
   return $self->{_firstName};
}
# Add more methods
sub setLastName{
   my ( $self, $lastName ) = @_;
   $self->{_lastName} = $lastName if defined($lastName);
   return $self->{_lastName};
}
sub getLastName {
   my( $self ) = @_;
   return $self->{_lastName};
}
1;

現在讓我們再次嘗試在我們的 main.pl 檔案中使用 Employee 物件並執行它。

#!/usr/bin/perl
use Employee;
$object = new Employee( "Mohammad", "Saleem", 23234345);
# Get first name which is set using constructor.
$firstName = $object->getFirstName();
print "Before Setting First Name is : $firstName\n";
# Now Set first name using helper function.
$object->setFirstName( "Mohd." );
# Now get first name set by helper function.
$firstName = $object->getFirstName();
print "After Setting First Name is : $firstName\n";

當我們執行上述程式時,會產生以下結果 −

First Name is Mohammad
Last Name is Saleem
SSN is 23234345
This is child class helper function
Before Setting First Name is : Mohammad
This is child class helper function
After Setting First Name is : Mohd.

更新於: 02-Dec-2019

355 瀏覽量

啟動您的 職業

完成本課程獲得認證

開始
廣告
© . All rights reserved.