#2019-2020-3 《Java 程序設計》第四周知識總結 第五章:繼承 一、定義繼承關係的語法結構: [修飾符] class 子類名 extends 父類名 { 類體定義 } 父類中應定義共有的屬性和方法,子類除了能夠繼承父類中的屬性和方法外,能夠根據本身的具體特色定義本身特有的屬性或方法。 【說明】:java類只支持單重繼承,即只有一個父類的繼承關係。 二、屬性的繼承與隱藏 屬性的繼承: 當父子類在同一個包中時,子類能夠無條件繼承父類的全部非私有屬性。 當父子類不在同一包中時(父類被public 修飾),父類的被public 和protected 修飾的屬性能夠被子類繼承。 屬性的隱藏: 子類中出現和父類中同名屬性的現象稱爲屬性的隱藏。 當子類執行繼承自父類的操做時處理的是繼承自父類的屬性,當子類執行本身定義的方法時,處理的是本身從新定義的同名屬性。 三、方法的繼承與覆蓋java
方法的繼承: 當父子類定義在同一個包中時,父類的全部非私有方法能夠被子類繼承。 當父子類不在同一包中時(父類被public修飾),父類的被public和protected修飾的方法能夠被子類繼承。 方法的覆蓋: 子類中定義了和父類具備相同方法頭方法的現象稱做方法的覆蓋。 方法覆蓋中,能夠經過在方法名前使用不一樣的對象名或類名來加以區分調用的是父子類中的方法。 子類在從新定義父類已有的方法時,子類方法的訪問控制修飾符控制範圍至少應該和父類相同才行。 四、繼承關係中的構造方法及super關鍵字 繼承關係中,構造方法的使用遵循以下原則: (1) 建立子類對象時,先調用父類構造方法在調用子類構造方法。 (2) 默認狀況下調用父類的無參構造方法。 (3) 對於父類帶參的構造方法,子類能夠經過在本身的構造方法中使用super關鍵字來調用,但這條語句必須是子類構造方法中的第一條可執行語句。 Java中,關鍵字super關鍵字的用法有如下三種: (1) 在子類構造方法中,能夠經過super關鍵字調用父類的構造方法,要求該語句是子類構造方法的第一條可執行語句。 (2) 能夠在子類經過super.父類屬性調用父類屬性,若是次屬性不涉及屬性的隱藏時,super.能夠省略。 (3) 能夠在子類中經過super.父類方法,調用父類中定義的方法,若是被調用的方法不涉及到覆蓋時,super.能夠省略。 【注意】this和super不能再static修飾的方法內使用。 五、抽象方法和抽象類 (1)抽象類:用abstract修飾的類叫作抽象類,抽象類不能實例化。 (2)抽象方法:用abstract修飾的方法叫作抽象方法,抽象方法只有方法頭沒有方法體。 (3)抽象方法必須定義在抽象類中。 六、多態性 經過覆蓋父類的方法來實現,在運行時根據傳遞的對象引用,來調用相應的方法。若將子類對象的引用傳遞給聲明爲父類的參數,若子類有這個方法,就調用子類的方法,若子類沒有這個方法,就調用父類的方法。 Instanceof:判斷一個對象是不是一個類的實例, 對象名 instanceof 類名 七、final關鍵字 (1) 被fina修飾的類不能被繼承,即不能有子類。 (2) 被final修飾的方法不容許子類隱藏能夠繼承的final方法。 (3) 被final修飾的常量在運行期間不容許再發生變化。git
#2019-2020-3《Java 程序設計》第四周學習總結 1.經過第二週的學習,利用教材和老師在藍墨雲上的一些教學視頻以及經過老師和同窗的博客以及一些課外資料,充分學習了第四章的內容,學習的內容有:子類與父類、子類的繼承性、子類與對象、成員變量的隱藏和方法重寫、super關鍵字、final關鍵字、對象的上轉型對象、繼承與多態、abstract類和abstract方法、面向抽象編程、開閉原則。經過這周的學習,對java有了更加深刻的理解,也學會了許多實用的東西。 2.經過手打第四章代碼,對語法有必定的幫助,並在調試完代碼後上傳至碼雲倉庫,並提交腳本。 例子1: 例子2:
例子3:
例子4:
例子5:
例子6:
例子7:
例子8:
例子9:
例子10:
例子11:
例子12:
例子13:
面向抽象編程例子:
腳本截圖:
編程
注:個人碼雲連接:https://gitee.com/zzm-zcc/zhang_zhi_minide
#2019-2020-3 《Java 程序設計》第四周練習題生疏題、錯題總結學習
一、下列說法正確的是(ACD)this
A .使用extends關鍵字定義一個類的子類。設計
B .Java與C++相似,支持多繼承,即子類能夠有一個或多個父類。3d
C .Object是全部類的祖先類。調試
D .若是子類繼承父類的成員變量做爲本身的一個成員變量,則該成員變量能夠被子類中本身定義的任何實例方法操做。視頻
二、下列說法錯誤的是(AD)
A .繼承的成員變量或方法的訪問權限能夠由子類從新定義。
B .若子類和父類不在同一包,子類只繼承父類中的protected和public訪問權限的方法做爲子類的方法。
C .繼承關係的UML類圖用一個實線鏈接兩個類,起始端是子類,重點端是父類,終點端使用空心三角形表示實線的結束。
D .若是在類自己建立一個對象,則該對象不能夠經過「.」運算符訪問繼承的protected變量。
三、若是子類和父類不在同一包中,子類不繼承父類的友好成員變量。(A)
A .true
B .false
四、instanceof主要用來判斷一個類是否實現了某個接口,或者判斷一個實例對象是否屬於一個類。(A)
A .true
B .false
五、下列關於Override的說法,正確的是(ABC)
A .子類所聲明的成員變量的名字和從父類繼承來的成員變量名字相同但類型不一樣時,子類會隱藏所繼承的成員變量。
B .除了繼承的方法以外,子類新定義的方法能夠操做子類繼承的成員變量。
C .子類重寫的方法,方法名字、參數個數、參數類型和父類的方法徹底相同。
D .重寫方法能夠操做被子類隱藏的成員變量和方法。