學號20《Java程式設計》第六週學習總結
一、教材學習內容總結
在第五章的學習中,瞭解到三個比較重要的關鍵字。第一是用extends來定義子類,因為java不支援多重繼承,所以每個類只有一個父類;而且任何類都是object類的子類,還有就是沒寫關鍵字extends,則為object類的子類;第二個是成員變數的隱藏,這就需要用到了關鍵字super操作子類隱藏的變數;第三個是關鍵字final,final類不能被繼承,如果用final修飾方法,則這個方法不允許子類重寫;第四個是關鍵字abstract,對於abstract方法,只允許宣告,不允許實現(沒有方法體),而且不允許final和abstract同時修飾衣蛾方法或類,也不允許static修飾abstract方法。
接下來就是繼承,java中會使用到包,那麼同一個包或者不同一個包繼承了什麼?首先,在同一個包中繼承的有公有,保護以及友好,不同的包中繼承只有公有和保護。後面就是上轉型,假如說A父類有一個物件a,子類有一個物件b,將b賦給a,則a成為b物件的上轉型物件。這裡還有一個就是多型,多型是指使用父類物件時,父類物件只有一個,將多個子類的行為賦給父類,則父類會表現出不同的行為。多型通父-子重寫為上轉型,上轉型是多型的表現方式。
|
方法過載 |
方法重寫 |
概念 |
一個類中可以有多個方法具有相同的名字,但是這些方法的引數必須不同,即或者引數的個數不同,或者是引數的型別不同。 |
方法的名字引數個數、引數的型別和父類的方法完全相同。 |
舉例 |
float hello(int a,int b){} float hello(long a,int b){} Double hello(double a,int b){}
|
Class A{ Float computer(float x,float y){return x+y;}...} Class B extends A { Float computer(float x,float y){return x*y;}
|
|
普通類(非abstract類) |
abstract類 |
區別 |
不可以有abstract方法 |
可以有abstract方法,也可以有非abstract方法 |
可以用new運算子 |
不能用new運算子建立物件 |
二、教材中的學習問題和解決過程
1、一個類的各個子類是怎樣體現多型的?
通過重寫方法。
- 子類可以有多個父類嗎?
不可以,因為java不支援多重繼承。
- 父類的final方法可以被子類重寫嗎?
不可以,因為不允許子類隱藏可以繼承的final方法。
- 其他(感悟)
這周比較特殊,純理論,沒有時間上機敲程式碼。但是這周的純理論課的內容也很多,有一些比較容易理解,有一些太難理解了,特別是課本上的開-閉原則,但是我也懂得了很多。
- 學習進度條
|
程式碼行數(新增/累積) |
部落格量(新增/累積) |
學習時間(新增/累積) |
重要成長 |
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
10行 |
1篇 |
3小時 |
|
第二週 |
20行 |
2篇 |
10小時 |
|
第三週 |
20行 |
3篇 |
10小時 |
|
第四周 |
30行 |
4篇 |
3小時 |
|
第五週 |
50行 |
5篇 |
5小時 |
|
第六週 |
10行 |
6篇 |
5小時 |
|