java基礎- 繼承、多態、封裝(第十二節)

​       應該很多人,到了這節課會有點懵逼,大學java課上,聽這節課絕對是最容易睡着的,無聊到爆炸有沒有?不過,沒關係,大學沒聽懂的,這裏我再講一遍,一個一個段子來,你會懂的。

 

      一、java繼承

      這個比較好理解,最直接的就是你繼承了你爸的基因、財產,比如房子;房子本身有住人的特性,你繼承之後,你也可以使用它這個屬性,你可以住裏面,對吧。關於這個,我們繼續往下看圖:

 

       說明一下:繼承是不是有點類似結構劃分?二級結構繼承一級結構的屬性,又有自己的特性,三級結構繼承二級結構的屬性,同時也新增了自己的屬性特質。(至於老實人的框爲什麼是綠色的就不要問了)其實就是父類屬性是通用的,子類可以繼承,並且更具體;比如人的吃行爲一般指的是主糧,大米,麪包什麼,但是其子類,男人可能吃女人,女人可能只吃水,還有廣州人可能吃福建人,對吧。

         說了這麼多,看下類是怎麼繼承的;類的繼承格式

    class 父類 {} 

 

     class 子類 extends 父類 {}

      java的繼承是通過extends關鍵字來實現的,2個類都是獨立的類,子類繼承父類。

  那麼問題來了,說了這麼多,繼承有啥用;

        舉個栗子,你老爸是億萬富翁,你繼承他的家產有啥用?不就爲了不用再去掙這幾個億嘛。是不是。說到底,就是不用重複過你老爸當初辛苦掙錢的日子了。你繼承你爸的Y染色體不也是爲了繼承你老爸的生育能力嗎?對吧。

       類也一樣,繼承的目的是爲了不需要重複寫相同的代碼,防止出現代碼臃腫,這個等你幹幾年就知道了,代碼的優化非常重要,是門藝術課,我們後面的後面會講,繼承除了解決了代碼重複問題,還可以在繼承父類方法的同時,個性化定製自己的方法;比如,對人來說,吃,就是吃的東西是一個很大的範圍,但是對男人來說,吃可能是喝湯,對女人來說,吃就是吃的肉,所以說,吃這個行爲,在子類是可以重新具體定義內容的,這個叫重寫。

 

       還有一個問題,並不是說子類繼承了父類,父類所有的方法你都可以用 了,比如你繼承了你老爸的資產,也不代表你能使用你老爸的小三啊,對吧。

    看代碼:

 

 

    Ps:圖片的目的是讓你們自己敲一遍,不要複製。

 

      二、java 多態;

       還有沒聽懂繼承的,往後翻,進羣,有視頻在線講解,還是聽不懂,估計就要考慮轉行了,相信我,沒有比我講的更通俗易懂的了。

      好了,接下來,看個有意思的,java多態;

      多態比較好理解,比如剛纔說的,人分爲男人女人,就是多態,2種狀態,你爸生了你和你弟,你妹什麼的,也是多態,古人有說,龍生九子,各有不同,就是多態;多態有個特點,允許往下強轉,不允許往上強轉,這個後面會說;     

多態的實現方式

方式一:重寫:

這個上面有,視頻裏面會講:Java 重寫(Override)與重載(Overload)。

 

方式二:接口

  • 1. 生活中的接口最具代表性的就是插座,例如一個三接頭的插頭都能接在三孔插座中,因爲這個是每個國家都有各自規定的接口規則,有可能到國外就不行,那是因爲國外自己定義的接口類型。

  • 2. java中的接口類似於生活中的接口,就是一些方法特徵的集合,但沒有方法的實現。具體可以看 java接口 這一章節的內容。

方式三:抽象類和抽象方法

 這個比較重要,我們後面會講,不要急;

    三、封裝

 

        在面向對象程式設計方法中,封裝(英語:Encapsulation)是指一種將抽象性函式接口的實現細節部份包裝、隱藏起來的方法。

       封裝可以被認爲是一個保護屏障,防止該類的代碼和數據被外部類定義的代碼 隨機訪問。

       要訪問該類的代碼和數據,必須通過嚴格的接口控制。

       封裝最主要的功能在於我們能修改自己的實現代碼,而不用修改那些調用我們代碼的程序片段。適當的封裝可以讓程式碼更容易理解與維護,也加強了程式碼的安全性。

封裝的優點

  • 1. 良好的封裝能夠減少耦合。

  • 2. 類內部的結構可以自由修改。

  • 3. 可以對成員變量進行更精確的控制。

  • 4. 隱藏信息,實現細節。

        個人理解:封裝指的是代碼方法,變量,實現細節通過訪問修飾符控制訪問權限,來實現有選擇性的暴露和隱藏給外部類;但是廣義的封裝可能針對的是某一個模塊,某個功能,而不是單單某個類,這個封裝,單從某個類來理解是比較簡單的,然而封裝這個思想,比較實用,可以從廣義的層面去考慮代碼的結構調整和優化。這個要記住,以後能不能成爲大佬,就看你代碼結構和性能優化的牛不牛逼;

      看代碼:

       Person這個類裏面有2個屬性是用private修飾的,這就意味這2個屬性,不能被外界直接訪問和修改,屬於封裝過的,如果需要,就必須通過相應的公共方法,比如,get,set方法來實現。

 

     這個也不難理解,比如,你擔心頭上長綠油油的頭髮,你就跟你女朋友說,以後別的男人約你出去玩,你都讓他先通過你批准,你允許之後纔可以出去,這就是說,你已經把你女友和別的男人約會這個事情,封裝了,別人想約,只能通過你這個公共渠道了。    這下明白了吧;

 

ps:

歡迎加入途碼技術學習交流二羣,羣聊號碼:322394766

微信公衆號持續推出最新課程,歡迎關注:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章