Java物件導向

來源:互聯網
上載者:User

標籤:

一、重載、覆蓋與隱藏

  1.重載

  每個方法都有一個由方法名稱和參數列表組成的簽名,同一個類中不能出現相同簽名的方法,對於相同名稱但參數列表不同的方法稱為重載。

  2.覆蓋

  子類可以繼承父類中除了構造方法之外的所有方法以及所有屬性,當然對於父類中private的屬性和方法,子類繼承來了也是不能訪問的;

  對於執行個體方法,在子類中如果出現一個和父類中繼承來的方法相同簽名的方法,則從父類中繼承來的該方法被覆蓋,在子類中覆蓋父類中的方法時,不能降低方法的可見度,且傳回型別與父類中方法傳回型別相同或者是其子類型。使用覆蓋是為了在子類中更改從父類中繼承來的某個方法的預設實現;

  對於父類中private、final、static的方法,子類不能覆蓋。

  3.隱藏

  對於父類中的屬性,是沒有覆蓋這一說的,覆蓋的概念是對於方法而言的,子類中若出現與父類中同名的屬性,則父類中屬性被隱藏了;

  4.對於private方法,若在子類中出現與父類中相同簽名的方法,這並不是覆蓋,實際上子類中的方法完全是另一個新方法。

 

二、this和super

  1. this

  類中每個非static方法都有一個隱藏的參數this,this指向當前調用方法的對象執行個體,因此當方法的參數名稱和屬性名稱相同時,常使用this引用屬性;

  this還有一個用法,是在構造方法的第一行調用類中其它的構造方法。

  2. super

  super用來在子類中引用父類中被覆蓋的方法;

  super用來在子類中訪問父類中被隱藏的屬性;

  super用來在子類的構造方法中的第一行調用父類中的構造方法。

 

三、static關鍵字

  1.static屬性

  static屬性工作表示一個類的所有執行個體對象共用同一個屬性,static屬性可以直接通過類名訪問。

  2.static方法

  static方法是一種不能向對象實施操作的的方法,static方法則沒有隱藏的參數this,因此無法對對象執行個體做出修改,但是可以操作static屬性和調用其他的static方法;

  static方法可以直接通過類名來調用,也可以通過執行個體對象來調用,普通方法必須通過執行個體對象來調用;

  static方法不能被覆蓋。

 

Java物件導向

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.