首頁  >  文章  >  後端開發  >  PHP 期末班

PHP 期末班

WBOY
WBOY原創
2024-08-29 13:06:03950瀏覽

PHP Final 類別是一個防止僅透過定義的 Final 前綴覆蓋子類別的方法的類別。這意味著如果我們定義一個帶有final前綴的方法,那麼它將防止重寫該方法。通常,PHP OOP 概念的繼承將允許類別層次結構內的巨大靈活性。您可以建立一個或多個用於擴展基類功能的子類,但 PHP 的 OOP 概念提供了一種創建不可擴展類的方法。這樣的課程稱為 Final Class/Final Classes。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法:

final class Pavan{ }
final public function set_bike(){}

PHP 最終課程如何運作?

PHP Final Class 是基於聲明工作,只需在類詞前面添加 FINAL 關鍵字即可。 Final Class 無需延長課程即可進行。子類別不能重寫final方法。普通類別變數不能用於宣告為final。 PHP Final 類別或方法不能像其他普通類別一樣進行擴充。如果使用任何其他普通類別擴充 Final 類,則 Final 類別將導致 PHP 在瀏覽器輸出中傳回 FATAL ERROR。最終方法也是如此。

PHP 期末課範例

以下是下面給出的範例:

範例#1

這裡使用類別之前的final關鍵字建立了一個類別。最後一個類別「Automobile1」無法擴充。在最終類別內部,建立最終方法/函數。然後使用方法/函數建立普通類別“Bmwcar1”,然後在段落標籤內建立最終方法/函數。然後創建一個類別“Tata1”來擴展“Bmwcar1”,它具有正常的函數/方法“display()”,但在Tata1 類別中沒有建立price()方法,因為呼叫它會因為final關鍵字而提供致命錯誤。它是不可擴展的。然後建立/建立“$bmwcar1”物件。呼叫display()方法和final方法的price()是從「Bmwcar1」和「tata1」類別完成的。

代碼:

<?php
final   class   Automobile1{
final    public  function   set_color1(){   }
final    public  function   show1(){  }
}
class  Bmwcar1{
public  function   display1(){ echo "This is the bmwcar1 class \n";}
final public function  price1(){echo "This is the bmwcar1 class's final price method \n";}
}
class  Tata1   extends   Bmwcar1{
public   function  display1(){   echo  "This is tata1 class \n";}
}
$bmwcar1  =  new  Bmwcar1();
$tata1 =   new  Tata1();
$bmwcar1->display1();
$bmwcar1->price1();
$tata1->display1();
$tata1->price1();
?>

輸出:

PHP 期末班

範例#2

這裡使用 FINAL 關鍵字建立「A1」類別。然後使用兩個變數建立普通函數“show1()”。其中變數的總和將儲存在 $sum1 變數中。然後 echo 函數用於列印變數值總和。然後建立“B1”類別來擴展“A1”類別。在「B1」類別中,變數的乘法完成並保存在 $multi1 變數中。使用回顯功能列印乘法結果,但在這裡我們用普通類別“B1”擴展最終類別“A1”。在這裡我們擴充了 FINAL 類別/方法。它會傳回致命錯誤,因為我們擴展了 FINAL 類別。

代碼:

<?php
final Class A1
{
function show1($x1,$y1)
{
$sum1=$x1+$y1;
echo "Sum of the given no.s = ".$sum1;
}
}
class B1 extends A1
{
function show($x1,$y1)
{
$multi1=$x1*$y1;
echo "The Multiplication of the given no.s = ".$multi1;
}
}
$obj1= new B1();
$obj1->show1(1001,1001);
?>

輸出:

PHP 期末班

範例 #3

這裡創建了一個帶有函數 e($xx1) 的普通類別“C1”,然後創建了一個類別“D1”來擴展類別“C1”以使用“C1”參數。因此,類別“D1”將繼承“C1”類別屬性,並且還將包含“D1”類別屬性。到目前為止,一切都是正確的。然後建立一個類別“A1”,其中包含最終函數/方法,其中包含“x1”、“y1”變量,用於計算變數總和。建立“B1”類別後,將擴展“A1”類別。但最終的類別、方法是不可擴展的。如果嘗試,將會發生致命錯誤。

代碼:

<?php
class C1
{
function e($xx1){
echo 'The value of xx1 variable value'.$xx1;
}
}
class D1 extends C1
{
function e($xx1){
$f=2*$xx1;
echo 'The double value of f (xx1)'.$f;
}
}
class A1
{
final function show($x1,$y1)
{
$sum1=$x1+$y1;
echo "Sum of given no=".$sum1;
}
}
class B1 extends A1
{
function show($x1,$y1)
{
$mult1=$x1*$y1;
echo "Multiplication of given no=".$mult1;
}
}
$obj=new D1();
$obj->e(13);
$obj= new B1();
$obj->show(100,100);
?>

輸出:

PHP 期末班

範例#4

在下面的範例中,首先建立一個普通類,然後在其中使用兩個變數建立一個最終方法,以計算兩個變數值的總和,然後在其中建立一個新方法/函數普通類別將兩個變數值相乘並傳回結果。這裡只創建和調用最終方法,甚至沒有擴展,因此不會出現錯誤。將列印變數的總和以及變數的乘法。

代碼:

<?php
class BaseClassone{
final function calculateone($val11,$val12){
$sum1 = $val11+$val12;
echo "Sum of the given nums = ".$sum1;
}
function showone($x1,$y1){
$multip1=$x1*$y1;
echo "Multiplication of the given nums = ".$multip1."\n";
}
}
$obj= new BaseClassone();
$obj->showone(12,12);
$obj->calculateone(10,10);
?>

輸出:

PHP 期末班

優點

PHP Final Class 概念是獨特的,並且像普通類別一樣不可擴展。就像 Final 類別一樣,Final 方法也不能以獨特的方式擴展。 PHP Final Class 概念將防止大量繼承功能並鼓勵組合。 Final Class 的所有公共 API 都是介面的一部分。它有助於封裝。最終的類別/方法將防止該類別/方法覆蓋子類別/方法。 PHP 最終類別將防止利用。儘管最終類別無法擴展,但這些最終類別在某些條件下是可以擴展的。這就像 Final 類別可以成為或可以成為子類,但不能成為超類別。

PHP Final 關鍵字甚至可以放置在存取說明符之前或之後。 PHP 最終方法也不應該有特定的回傳類型和方法名稱。

以上是PHP 期末班的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn