20165211 2017-2018-2 《Java程序设计》第4周学习总结
20165211 2017-2018-2 《Java程序設計》第4周學習總結
教材學習內容總結
本周,我學習了書本上第五、六兩章的內容,以下是我整理的主要知識。
第五章 子類與繼承
子類與父類
1.1子類
class 子類名 extends 父類名
由繼承而來的類稱為子類,被繼承的類稱為父類(超類)。
Java不支持多重繼承,子類只能有一個父類,子類與父類是“is-a”關系。
1.2類的樹形結構
Java的類按繼承關系成樹形結構(一對多),根結點是object類,是所有類的祖先類。
若類的聲明中沒有使用extends關鍵字,默認這個類是object的子類
子類的繼承性
2.1 子類和父類在同一包中的繼承性
子類自然地繼承了其父類中不是private的成員作為自己的成員
2.2 子類和父類不在同一包中的繼承性
子類只繼承父類中的protected和public訪問權限的成員變量作為子類的成員變量。
2.3 protected的進一步說明
子類與對象
3.1 子類對象的特點
用子類的構造方法創建一個子類的對象時,父類的成員變量也分配了內存范圍,只將子類繼承的那部分成員變量,作為分配給子類對象的變量
3.2 關于instanceof運算符
左面的操作元是對象,右面的操作元是類,當左面的操作元是右面的類或其子類所創建的對象時,結果是true。
成員變量的隱藏和方法重寫
成員變量的隱藏
聲明的成員變量的名字和從父類繼承來的成員變量的名字相同,在這種情況下,子類就會隱藏所繼承的成員變量。
方法重寫
子類通過重寫隱藏已繼承的方法
子類通過方法的重寫可以把父類的狀態和行為改變為自身的狀態和行為
重寫方法可以操作繼承的成員變量、調用新意義和其他方法,但無法操作被子類隱藏的成員變量和方法
重寫父類的方法時,不允許降低方法的訪問權限,但可以提高訪問權限
super關鍵字
用super操作被隱藏的成員變量和方法
在子類中想使用被子類隱藏的成員變量或方法時,需要使用關鍵字super。例:super.x,super.play
使用super調用父類的構造方法
子類不繼承父類的構造方法,因此,子類在其構造方法中需要使用super來調用父類的構造方法,且super必須是子類構造方法的頭一條語句。
final關鍵字
final類
final類不能被繼承,不能有子類
final方法
用final修飾父類中的一個方法,那么,這個方法不允許子類重寫
常量
概念:成員變量或局部變量被修飾為final
對象的上轉型對象
子類與父類:“is-a”關系
上轉型對象的實體是由子類負責創建的,但上轉型對象會失去原對象的一些屬性和功能。
上轉型對象不能操作子類新增的成員變量,不能調用子類新增的方法。可以訪問子類繼承或隱藏的成員變量,也可以調用子類繼承的方法或子類重寫的實例方法。
繼承與多態
多態性就是指父類的某個方法被其子類重寫時,可以各自產生自己的功能行為。
abstract類和abstract方法
abstract類可以有abstract方法
abstract類不能用new運算符創建對象
abstract類的子類
abstract類的對象做上轉型對象
面向抽象編程
可以使程序的設計者把主要精力放在程序的設計上,而不必拘泥于細節的實現
使用多態進行程序設計的核心技術之一是使用上轉型對象,
開-閉原則
設計的系統對擴展開放,對修改關閉,系統易于維護
第5章 接口與實現
接口
接口聲明
interface 接口的名字
接口體
包括常量的聲明和抽象方法兩部分,只有抽象方法,沒有簡單方法,所有常量的訪問權限一定是public,static常量,所有抽象方法的訪問權限一定是public
實現接口
一個類需要在類聲明中使用關鍵字implement聲明該類實現一個或多個接口,實現多個接口,用逗號隔開。例:class A implement Printable ,Addable
如果一個非抽象類實現了某個接口,那么這個類必須重寫這個接口中的所有方法。類在重寫接口方法時不僅要去掉abstract修飾符,給出方法體,方法訪問權限要用public修飾。
接口也可以被繼承
接口的UML圖
名字層--常量層--方法層
接口回調
用接口聲明的變量稱作接口變量,接口屬于引用型變量
接口回調是指:可以把實現某一接口的類創建的對象的引用復制給該接口聲明的接口變量,那么改接口就可以調用被類實現的接口方法。
理解接口
接口可以抽象出重要的行為標準,該行為標準用抽象方法表示
可以把實現接口的類的對象引用復制給接口變量,該接口變量可以調用被該類實現的接口方法。
接口與多態
有接口產生的多態是指不同的類在實現同一個接口是可能具有不同的實現方法,那么接口變量在回調接口方法時就可能具有多種形態。
接口參數
abstract類與接口的比較
abstract類和接口都可以有abstract方法
接口中只可以有常量,不能有變量,abstract類中既可以有常量,也可以有變量
abstract類中可以有非abstract方法,接口不可以
代碼調試中的問題和解決過程
問題1:
問題1解決方案:cheapGoods.newSetWeight(),括號中需要填入int型的數據。
問題2:
問題2解決方案:使用println輸出產生錯誤,應為printf
代碼托管
學習進度條
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 37/37 | 1/1 | 10/10 | |
| 第二周 | 399/436 | 1/2 | 12/22 | |
| 第三周 | 764/1163 | 1/3 | 18/40 | |
| 第四周 | 687/1813 | 1/4 | 12/52 |
轉載于:https://www.cnblogs.com/akashi/p/8646498.html
總結
以上是生活随笔為你收集整理的20165211 2017-2018-2 《Java程序设计》第4周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内核进程切换实现分析
- 下一篇: spring boot与spring m