理解 Perl 中的繼承
面向物件程式設計有一個非常優秀且有用的概念叫做繼承。繼承簡單來說就是父類的屬性和方法可以被子類使用。因此,您不必一遍遍地編寫相同的程式碼,只需繼承父類即可。
例如,我們可以有一個 Employee 類,它繼承自 Person 類。這被稱為“is-a”關係,因為員工是人。Perl 有一個特殊的變數 @ISA 來輔助實現這一點。@ISA 控制(方法)繼承。
使用繼承時,需要考慮以下重要事項:
- Perl 會在指定物件的類中搜索給定的方法或屬性,即變數。
- Perl 會搜尋物件類 @ISA 陣列中定義的類。
- 如果在步驟 1 或 2 中找不到方法,則 Perl 會使用 AUTOLOAD 子例程(如果在 @ISA 樹中找到)。
- 如果仍然找不到匹配的方法,則 Perl 會在標準 Perl 庫中提供的 UNIVERSAL 類(包)中搜索該方法。
- 如果仍然找不到方法,則 Perl 將放棄並引發執行時異常。
因此,要建立一個新的 Employee 類來繼承 Person 類的屬性和方法,我們只需編寫如下程式碼:將此程式碼儲存到 Employee.pm 檔案中。
#!/usr/bin/perl package Employee; use Person; use strict; our @ISA = qw(Person); # inherits from Person
現在 Employee 類繼承了 Person 類中所有的方法和屬性,您可以像下面這樣使用它們:使用 main.pl 檔案進行測試:
#!/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 Before Setting First Name is : Mohammad Before Setting First Name is : Mohd.
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP