java基礎之抽象類別,java基礎

來源:互聯網
上載者:User

java基礎之抽象類別,java基礎

  java的繼承說完後..讓我們來瞭解瞭解抽象類別...

  我們之前說過,將一件事物抽象成具體屬性和方法後,並將其封裝就是類了.如

  我們將人的名字,性別,以及睡覺的方法扔進了類Person中,(專業術語:封裝成Person類)

  發現沒,雖然我是說將人的屬性,方法抽象封裝成類...但是,你沒發現我們抽象得過於具體了嗎?沒發現?

  我之前說的,將人的屬性,方法抽象後封裝進類裡面,但是......你難道不覺得name名字,sex性別太過於具體了嗎?還有就是.人的確有睡覺這個方法(行為),當是,,你直接就將其睡覺的方法定義成橫著睡...這是不是......

  所以我們可以這麼說,Person這個類使我們抽象出來的東西具現化了.我們本來只是將屬性抽象出來,但是現在我們卻將他們初始化了,比如名字改為了TianYiLuo 性別改成了男...

  所以說,我們應該將這個事物給高度概括一下...哦 我先提一下.在抽象類別中.我們只負責方法(行為)的抽象,屬性那個東西我們不管..至於為什麼....太麻煩.沒必要

  來..讓我們將人的方法(行為)來個高度抽象吧....人有什麼方法呢..睡覺..吃飯好了 就暫時抽象這兩個了...先聲明..我不是只會吃飯睡覺蛤...我還會潛水...嘿嘿

  抽象類別跟我們之前見到的正常的類沒什麼區別..只不過實在類和方法前面添加一個abstract而已...看

    

  這就抽象完了....是不是很簡潔啊..抽象類別跟普通類之前最主要的區別就是沒有方法體..方法體就是大括弧裡面的內容,並且抽象類別沒有辦法new對象...

   將事物高度概括成抽象類別之後...不要以為就沒事兒了...事情還多呢....

  別跟我說...你將封裝成類之後就不管了...我之前不是說了的嘛..抽象類別裡面裝的東西就是某類事物共有的方法...那啥來著...交集 ,所以我們要使用這個類的時候就要將其具體的方法描述出來...

  那麼該怎麼描述呢....當然是用繼承啦...看圖

  在這裡,我們是用student這個類將Person裡面的抽象方法給具體化.當然還可以用其他的類,只要是與Person(人)類有關的都可以,比如說worker(工人)teacher(教師)都可以,或許我舉的例子不是很形象..我就簡單的解釋一下....想象一下,每個人都有自己的不同的行為,方法...比如說同是睡覺..我可以橫著睡覺,側著睡覺,站著睡覺,躺著睡覺..看,每個方法的具體過程都不同..但是依然是睡覺..所以我們可以將其定義成抽象類別.

  當然,這裡要提醒一下,抽象類別的子類必須將父類的方法全部具體化(複寫)..否則,這個子類任然是抽象類別..並且無法建立對象

  所以使用抽象類別的時候一定要注意將所有的方法都複寫一次

 

  使用抽象類別的好處:

  1.我們可以讓程式具有更好的拓展性...這個後面將java多態的時候我會講..

  2.讓程式的條理更加清晰,當我們使用抽象類別後,無論子類是什麼,我們都可以通過抽象類別來大致看出子類的功能,比如說Person是抽象類別,那我們就可以知道,其子類就是不同的人,如果Door是抽象類別,其子類自然就是不同的Door(門)啦..

 

  最後,我在來補充一個很容易被忽視的東西....關於許可權修飾符的問題..我這裡講隨便說說,java中許可權的大小順序是:

  public > protected > default > private

  如果父類的方法method1用public修飾,那麼子類在繼承並複寫該方法的時候只能用public修飾.否則報錯 我舉個例子

  在java中如果不加許可權修飾符,則會使用預設的default許可權,然後錯誤就發生了..使用低許可權(default)覆蓋高許可權(public)的錯誤

  一定要記住..高許可權可以覆蓋低許可權....但是低許可權不能覆蓋高許可權...我下面用圖說明

  ..吐槽一句...Windows內建畫圖工具用不來.....

 

 

  

 

 

  

聯繫我們

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