1. 程式人生 > >Java 封裝 繼承 多態

Java 封裝 繼承 多態

數量 eof imp 實現繼承 nds 方法重載 bool 運算符 封裝 繼承 多態

一、 封裝

a) 概念:裝進去,封起來

b) 作用:方便、安全

  1. 方便:調用(一處編寫,N處調用),修改(一處修改,處處響應)。
  2. 安全:數據安全(將屬性私有化,提供共有方法,可以在方法中驗證傳參的有效性,合法性),訪問安全(通過包或訪問修飾符,限制類或屬性或方法的訪問級別,只讓需要知道的地方知道)

1.1、 構造方法

a) 定義:負責對象初始化任務,通常用來給屬性賦值的。

b) 特點:與類同名,沒有返回類型,系統默認會提供無參構造方法。

Dog dog = new Dog();

c) 變量的作用域(成員變量和局部變量同名):就近原則。所以為了區分同名成員變量和局部變量,引入了關鍵字this,this是指當前對象。

this(參數列表) 類內訪問構造方法

必須位於其他構造方法的第一句話。

d) 如果我們為類寫了有參構造,那麽系統將不再提供無參構造。

e) 構造方法重載:

構造方法的參數列表不同:(參數列表的類型,數量,順序不同)

和訪問修飾符與返回類型無關

二、 繼承

a) 概念:一種在不需要編寫任何當前類代碼的情況下,完成當前類功能擴展的能力。

b) 分類:實現繼承(如概念),抽象繼承,可視繼承

  1. 抽象類,接口
  2. Form / JFrame (繼承窗體的外觀和編碼能力)

c) 關系:

  1. Is a 繼承
  2. Has a
  3. Like a( more than a)

d) 關鍵字:extends / implements

e) 訪問修飾符(修飾屬性或方法)

訪問修飾符

類內

同包

子類(不同包)

其他

修飾類

Private

默認

Protected

public

2.1、 關鍵詞this和super (訪問構造方法,必須位於第一句。)

This:類內訪問

Super:子類訪問父類

2.2、 不能被繼承的父類成員

a) 私有屬性

b) 不在同包內的默認訪問修飾符修飾的內容

c) 構造方法

2.3、 繼承關系的不同類型代碼的執行順序

a) 父類靜態代碼塊

b) 子類靜態代碼塊

c) 父類普通代碼塊

d) 父類構造方法

e) 子類普通代碼塊

f) 子類構造方法

2.4、 子類重寫父類方法,重寫和重載的區別

a) 重寫:子類重寫父類同名,同參方法。訪問修飾付子類>=父類與返回類型子類<=父類。

b) 重載:同一個類內同名,不同參方法。與訪問修飾符和返回類型無關。

三、多態

a) 概念:一種類型(父類),多種表現(子類)

b) 類型:父類類型作為方法參數,父類類型作為方法返回值

c) 類型轉換: 子類對象向父類類型轉換:自動類型轉換 :向上轉型

父類對象向子類類型轉換:強制類型轉換 :向下轉型

對象類型運算符:boolean flag = 對象 instanceof 類型;

四、 靜態關鍵字static

a) 可以修飾:屬性、方法和類

b) 被修飾的屬性和方法稱之為類屬性和類方法,在該類的所有對象中共享。

c) 靜態方法和靜態代碼塊只能訪問靜態成員。非靜態方法可以訪問靜態或非靜態成員。

d) 1、靜態代碼塊,2、普通代碼塊,3、構造方法,4、自定義方法

五、 final 和 abstract

a) 兩者是矛盾的,對立的,不可以同時存在。

b) Final修飾的類不可以被繼承,修飾的變量不可以修改值,修飾的方法不能被重寫。

c) Abstract可以修飾類和方法,抽象方法只能存在於抽象類中,抽象類是可以被繼承的,抽象方法必須被繼承類實現。

d) String,Math類為final類

e) Object中的getClass(),wiat(),notify()等final方法

f) Object中的toString(),hashCode(),equals()等非final方法

g) 重寫Object的toString()方法,在輸出對象時,直接輸入對象的toString()方法返回值。否則輸出對象的內存地址。

h) 重寫equals方法,只要所有的屬性值都相等,則是同一個對象。

Java 封裝 繼承 多態