1. 程式人生 > >201711671235學習《java程式設計》第五週學習總結

201711671235學習《java程式設計》第五週學習總結

教材學習內容總結

1.子類和父類

a.繼承是一種由已有的類建立新類的機制

b.java不支援多重繼承,即子類只能有一個父類

一般類(父類:公有屬性)
子類(子類:繼承/新定義的屬性和行為)

c.class 子類名 extends 父類名{}

2.子類的繼承性

a.子類和父類在同一個包中繼承性:子類自然地繼承了其父類中不是private的成員變數和方法

b子類和父類不在同一個包中繼承性:子類自然地繼承了其父類中不是private和friendly的成員變數和方法

c.protected的進一步說明:

以上情況obiect物件可以訪問protected成員變數和方法

3.子類和物件

a.子類構造方法建立物件->父類的成員變數也被分配空間

b.關於instance of:物件 instance of 類(左邊物件是否為右邊的類或子類所建立的物件)返回ture or false

4.成員變數的隱藏和方法重寫

a.

子類 父類
成員變數同名
隱藏從父類繼承的成員變數  
子類物件以及子類自己定義的方法操作子類重新宣告的成員變數
子類繼承的方法所操作的成員變數是被子類繼承或隱藏的成員變數

b.

子類繼承自父類的方法訪問/呼叫 子類新定義的方法訪問/呼叫
繼承和隱藏的成員變數 繼承和新宣告的成員變數
  用super關鍵字操作隱藏的成員變數

c.方法重寫(方法覆蓋):可以隱藏已繼承的方法

語法規則:返回型別/父類的子型別(返回型別為類型別) 方法名(引數個數、型別):與父類一樣

           注:假如People只一個父類,它的子類可以為Student,即子型別為Student

重寫方法是否能操作
繼承成員變數和方法 Yes
子類定義的成員變數和方法 Yes
被子類隱藏的成員變數和方法 No

 

注意事項:重寫父類方法時,不允許降低方法的訪問許可權,可以提高訪問許可權

5.super關鍵字

a.用super操作被隱藏的成員變數和方法

b.使用super呼叫父類的構造方法:如果子類的構造方法沒有明顯的指明使用父類的哪個構造方法,子類就呼叫父類的不帶引數的構造方法,且子類不繼承父類的構造方法

6.final關鍵詞

a.final+成員變數|區域性變數=常量

b.final class 類名{}:該類不能被繼承,不能有子類

c.父類中:final+方法:不允許子類重寫改方法

7.物件上轉型物件

class B extends A{}

A a;

B b=new B();

a=b;

a是b的上轉型物件

上轉型物件是否操作  
子類新增的成員變數和方法 No
子類繼承或隱藏的成員變數 Yes
子類繼承的方法或子類重寫的例項方法(子類物件呼叫這些方法) Yes

a.父類建立物件(不一定等於)子類物件的上轉型物件

b.物件上轉型物件強制轉換到子類物件:子類名 子類物件=(子類名)父類物件名      此時子類物件具備子類所有屬性與功能

c.不允許:子類 物件=父類建立物件的引用

d.

8.繼承與多型

上轉型是多型的表現形態,多型性是指父類的某個方法被其子類重寫,可以各自產生自己的功能行為

9.abstract類和abstract方法

a.用關鍵字abstract修飾的類成為abstract類(抽象類)

b.abstract方法只允許宣告不允許實現(沒有方法體)

c.因為abstract類要被繼承,abstract方法要被重寫·,所以不允許final 和 abstract 同時修飾一個方法或類 ,也不允許 static 修飾  abstract方法(即abstract方法必須是例項方法)

abstract類
abstract方法
非abstract方法

d.abstract類不能用new運算子建立物件

e.非abstract類繼承abstract類時,它必須重寫abstract方法(即去掉abstract,給出方法體),如果是abstract類繼承abstract類,可以重寫/繼承abstract方法

10.面向抽象程式設計

使用多型進行程式設計的核心技術之一是使用上轉型物件,即將abstract類宣告的物件作為其子類的物件的上轉型物件,那麼這個上轉型物件就可以呼叫子類重寫的方法

教材學習中的問題和解決過程

子類繼承/新定義/重寫的訪問的訪問許可權容易混淆:畫圖分析

上轉型物件的訪問許可權:畫圖分析

  程式碼行數(新增/累積) 部落格量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 20篇 400小時 會用java語言獨立設計程式
第一週 13/13 1/1  5/5 學會使用jdk以及對java源程式語句的基本注意事項有所瞭解
第二週 140/143  1/2 10/15 學會java基本資料型別與陣列和c語言/c++在表達和用法上的相同/不同之處
第三週 276/419 1/3 20/35 java中運算子,表示式和語句的表現形式,類的宣告,定義方法
第四周 600/1019 1/4 30/45 類和物件
第五週

150/1169

1/5 10/55 繼承的作用,子類和父類的繼承性,子類繼承父類後方法的訪問許可權以及各種操作

參考文獻

《java2實用教程(第5版)》