Java基礎班學習筆記(9)

來源:互聯網
上載者:User

標籤:

1:final關鍵字(掌握) (1)是最終的意思,可以修飾類,方法,變數。  (2)特點:   A:它修飾的類,不能被繼承。   B:它修飾的方法,不能被重寫。   C:它修飾的變數,是一個常量。  (3)面試相關:  A:局部變數   a:基本類型 值不能發生改變   b:參考型別 地址值不能發生改變,但是對象的內容是可以改變的  B:初始化時機   a:只能初始化一次。       被final修飾的變數只能賦值一次。        在構造方法完畢前。(非靜態常量)   b:常見的給值     定義的時候。(推薦)    構造方法中。  2:多態(掌握) (1) 同一個對象在不同時刻體現出來的不同狀態。 (2)多態的前提:  A:有繼承或者實現關係。  B:有方法重寫。  C:有父類或者父介面引用指向子類對象。   多態的分類:   a:具體類多態    class Fu {}    class Zi extends Fu {}       Fu f = new Zi();   b:抽象類別多態    abstract class Fu {}    class Zi extends Fu {}       Fu f = new Zi();   c:介面多態    interface Fu {}    class Zi implements Fu {}       Fu f = new Zi(); (3) 多態中的成員訪問特點  A:成員變數    編譯看左邊,運行看左邊  B:構造方法    子類的構造都會預設訪問父類構造  C:成員方法    編譯看左邊,運行看右邊  D:靜態方法    編譯看左邊,運行看左邊     為什麼?    因為成員方法有重寫。(所以運行看右邊) (4) 多態的好處:  A:提高代碼的維護性(繼承體現)  B:提高代碼的擴充性(多態體現) (5)多態的弊端:  父不能使用子的特有功能。  現象:   子可以當作父使用,父不能當作子使用。 (6) 多態中的轉型  A:向上轉型   從子到父  B:向下轉型   從父到子 (7) 孔子裝爹的案例協助大家理解多態 多態繼承中的記憶體配置圖解 多態中的對象變化記憶體配置圖解 (8)多態的練習  A:貓狗案例  B:老師和學生案例  3:抽象類別(掌握)   抽象類別概述   回想前面我們的貓狗案例,提取出了一個動物類。並且我們在前面也建立過了動物對象,其實這是不對的。       為什麼呢?因為,我說動物,你知道我說的是什麼動物嗎?只有看到了具體的動物,你才知道,這是什麼動物。 所以說,動物本身並不是一個具體的事物,而是一個抽象的事物。只有真正的貓,狗才是具體的動物。同理,我們也可以推想,不同的動物吃的東西應該是不一樣的,所以,我們不應該在動物類中給出具體體現,而是應該給出一個聲明即可。在Java中,一個沒有方法體的方法應該定義為抽象方法,而類中如果有抽象方法,該類必須定義為抽象類別。    (1)把多個共性的東西提取到一個類中,這是繼承的做法。    但是呢,這多個共性的東西,在有些時候,方法聲明一樣,但是方法體。    也就是說,方法聲明一樣,但是每個具體的對象在具體實現的時候內容不一樣。    所以,我們在定義這些共性的方法的時候,就不能給出具體的方法體。    而一個沒有具體的方法體的方法是抽象的方法。    在一個類中如果有抽象方法,該類必須定義為抽象類別。  (2)抽象類別的特點  A:抽象類別和抽象方法必須用關鍵字abstract修飾  B:抽象類別中不一定有抽象方法,但是有抽象方法的類一定是抽象類別  C:抽象類別不能執行個體化  D:抽象類別的子類    a:是一個抽象類別。    b:是一個具體類。這個類必須重寫抽象類別中的所有抽象方法。  (3)抽象類別的成員特點:  A:成員變數   有變數,有常量(既可以是變數,也可以是常量)  B:構造方法   有構造方法(用於子類訪問父類資料的初始化)  C:成員方法   有抽象,有非抽象(既可以是抽象的,也可以是非抽象的)   抽象類別的成員方法特性:  A:抽象方法 強制要求子類做的事情。  B:非抽象方法 子類繼承的事情,提高代碼複用性。 (4)抽象類別的練習  A:貓狗案例練習  B:老師案例練習  C:學生案例練習  D:員工案例練習 (5) 抽象類別的幾個小問題  A:抽象類別有構造方法,不能執行個體化,那麼構造方法有什麼用?   用於子類訪問父類資料的初始化  B:一個類如果沒有抽象方法,卻定義為了抽象類別,有什麼用?   為了不讓建立對象(為了不讓執行個體化該類)  C:abstract不能和哪些關鍵字共存   a:final 衝突   b:private 衝突   c:static 無意義  4:介面(掌握) (1)回顧貓狗案例,它們僅僅提供一些準系統。    比如:貓鑽火圈,狗跳高等功能,不是動物本身就具備的,    是在後面的培養中訓練出來的,這種額外的功能,java提供了介面表示。  (2)介面的特點:  A:介面用關鍵字interface修飾   interface 介面名 {}  B:類實現介面用implements修飾   class 類名 implements 介面名 {}  C:介面不能執行個體化  D:介面的實作類別   a:是一個抽象類別。(但是意義不大,因為抽象類別也不能被執行個體化)   b:是一個具體類,這個類必須重寫介面中的所有抽象方法。  (3)介面的成員特點:  A:成員變數    只能是常量並且是靜態(即使你定義的是非靜態變數)         如:在介面中定義:public int num = 10;        而其實他的預設修飾符是: public static final num = 10;    預設修飾符:public static final    建議:自己手動給出預設修飾符  B:構造方法    沒有構造方法  C:成員方法    只能是抽象的    預設修飾符:public abstract (即使你定義的時候不寫public)    建議:自己手動給出預設修飾符  (4)類與類,類與介面,介面與介面  A:類與類   繼承關係,只能單繼承,可以多層繼承  B:類與介面   實現關係,可以單實現,也可以多實現。   還可以在繼承一個類的同時,實現多個介面  C:介面與介面   繼承關係,可以單繼承,也可以多繼承 (5)抽象類別和介面的區別(自己補齊)?  A:成員區別   抽象類別:   介面:  B:關係區別:   類與類:   類與介面:   介面與介面:  C:設計理念不同   抽象類別:is a,抽象類別中定義的是共性功能。   介面:like a,介面中定義的是擴充功能。

Java基礎班學習筆記(9)

聯繫我們

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