php物件導向之final關鍵字用法及執行個體

來源:互聯網
上載者:User
這節課我們來說一下關於final關鍵字的概念和用法。

什麼是final關鍵字?

final中文翻譯為“最終的”,“最後的”。在聲明一個類之前用final關鍵詞修飾,說明這個函數將不能在任何子類中被重載,繼承,也就是說,被final修飾的類將不能再有子類。

之前的課程我們說了4種關鍵字,public、private、protected、static,分別是公用、私人、保護、靜態。用法及樣本在前面的課程都有,想學習的同學可以參見前面的課程:

php物件導向之靜態方法使用

php物件導向之資料隱藏

下面我們用執行個體來對比下final和其他關鍵字有什麼不一樣,再來分析下final的用法:

final用法執行個體詳解:

<?phpheader("content-type:text/html;charset=utf-8");class A{                                               //聲明類public $num = "23";final function operation(){                            //建立方法,用final關鍵字echo '上面變數$num數字是 ' . $this->num ;}}class B extends A{                                    //建立子類B繼承A類public $num = "50";function operation(){echo '這個變數$num數字是 ' . $this->num ;}}$Num = new B();                                         //執行個體化子類$Num ->operation();                                     //調用子類中的方法

我們先建立了一個A類,在A類中添加方法,但是在方法前的關鍵字我們用了final,也就是說,A類中的方法operation()將不能再被繼承、重載。接著又建立B類去繼承A類,包括不能被繼承的方法operation(),啟動並執行結果就是只有報錯。

上述樣本中禁止了在B類中重載A類中的operation()方法。這樣做只會報錯。

如果final寫在類之前,那麼講禁止整個類被繼承。比如上面的樣本:

final class A{}

這樣寫,整個A類都將不能被繼承、重載。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.