1、 子類與父類html
2、 成員變量的隱藏和方法重寫java
聲明的成員變量的名字和從父類繼承的相同時,子類會隱藏繼承而來的成員變量。 且:子類對象仍然能夠調用從父類繼承的方法操做被子類隱藏的成員變量,也就是說子類繼承的方法所操做的成員變量必定是被子類繼承或隱藏的成員變量。git
重寫方法既能夠操做繼承的成員變量、調用繼承的方法,也能夠操做子類新聲明的成員變量、調用新定義的其餘方法,但沒法操做被子類隱藏的成員變量和方法。(除非使用super關鍵詞)
另外的,子類中重寫的方法與父類中繼承的方法不是同一類型,且其餘變量都不變的狀況下,易出現編譯錯誤,如:編程
class A { float computer(float x, float y) { return x+y; } }
重寫時:markdown
class B extend A { double computer(float x, float y) { return x*y; } }
可是,子類中重寫的方法能夠是父類方法的子類型。
3、super關鍵詞學習
Super用於訪問和調用被子類隱藏的成員變量和方法。用法基本爲super.x或super.play().設計
4、final關鍵詞調試
形如final class A {} final類不能被繼承,即不能有子類。code
在父類用final修飾的方法,不容許被子類重寫。htm
就是常量,不容許修改值。
5、對象的上傳型對象
建立方式:
Animal a; Tiger b = new Tiger(); a =b;
6、 **繼承與多態(重點)
** 上傳型對象在調用一個方法時可能具備多種形態,由於不一樣的子類在重寫父類的方法時可能產生不一樣的行爲。爲之後複習方便,在此記錄書上例題代碼:
class 動物 { void cry() { } } class 狗 extends 動物 { void cry() { System.out.println("汪汪....."); } } class 貓 extends 動物 { void cry() { System.out.println("喵喵....."); } } public class Example5_11 { public static void main(String args[]) { 動物 animal; animal = new 狗(); animal.cry(); animal=new 貓(); animal.cry(); } }
問題1:編譯類文件時始終提示找不到符號。
問題1解決方案:通過嘗試,直接編譯運行主類文件,便可正常使用。
問題1:
教材P124 Example5¬_8.java中,父類class中爲何要定義兩個構造方法;而且爲何子類UniversityStudent中調用重寫後的Student構造方法時要用super關鍵字。
問題1解決方案:通過詢問同窗並按照書中提示嘗試後,發現因爲子類不繼承父類的構造方法,所以子類中的super是指調用父類其中一個構造方法,而不是調用被隱藏的。
無
上週博客互評狀況(只要連接,具體點評放相應博客下)
本週首次互評
本章的學習使我更加直觀透徹的理解了子類父類的關係以及各類編程方法與規則,也對面向對象中的繼承與多態特色有了更深的瞭解。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 6/6 | 1/1 | 20/20 | |
第二週 | 245/251 | 1/2 | 18/38 | |
第三週 | 633/884 | 1/3 | 22/60 | |
第四周 | 305/1189 | 1/4 | 30/90 |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
計劃學習時間:XX小時
實際學習時間:XX小時
改進狀況:
(有空多看看現代軟件工程 課件
軟件工程師能力自我評價表)