物件導向 階段總結

2021-06-19 11:59:11 字數 2488 閱讀 8011

函式覆蓋和過載區別:

1,

過載。同乙個類中。overload      條件:函式名相同,引數列表必須不同,對返回值無要求

2,

覆蓋。子類中。override      

條件:函式名稱與引數列表

和返回值

完全相同

注意事項:

1,子類方法覆蓋父類方法時,子類許可權必須要大於等於父類的許可權。

2,

靜態只能覆蓋靜態,或被靜態覆蓋。

3.

過載時如果子父類中函式名稱相同,僅僅是返回值則不同絕不允許過載(編譯報錯,呼叫的不確定性)。因為過載是基於函式引數區別;

4.覆蓋時函式的宣告必須完全相同,包括返回值也必須一致。

①如果子父類函式名稱相同而引數列表不同

,則該方法就成了子類特有方法,不存在覆蓋

②如果子父類函式名稱和引數列表都相同而返回值不同,編譯不通過

如圖:父

int show(int a)

子short show(int a)

上圖②這種情況出現在子父類中

這種情況如果出現在同乙個類中就會出現呼叫的不確定性,不能實現過載,編譯也會報錯

子類覆蓋父類方法時,只能丟擲比父類更少的異常。或者是丟擲父類異常的子異常,因為子類可以解決父類的一些問題不能比父類有更多的異常,子類訪問許可權只能比父類大,不能更小。

被覆蓋的方法不能為private如果父類方法是private型,則子類不存在覆蓋,相當於子類增加了乙個新的特有方法,編譯會報錯!

父private

int show(int a)

子int show (int a)

多型時要注意的問題

父類型別的子類物件 不能訪問子類中特有方法,可以通過覆蓋來訪問子類中子父類共有方法

多型時成員的特點

成員函式:

編譯時看左邊;執行時看右邊

成員變數:編譯時和執行時都看左邊

非靜態

內部類中不能定義靜態成員,如果內部類定義了靜態成員,該內部類必須被靜態修飾

常用set(),與

get()

的意義,

this.x=x

;將區域性變數轉化為成員變數,封裝成物件在堆記憶體中,延長生命週期,

繼承

時一定要注意子類建構函式中第一行隱藏的super()

父類建構函式

子類建構函式第一行一定是呼叫父類建構函式,不宣告就預設呼叫了父類空參的建構函式。父類建構函式被複寫為有引數,空參的建構函式super()就被隱藏了。如果子類建構函式中沒有

super(引數)

宣告呼叫父類建構函式,就會編譯失敗。所以程式設計時建議應保留父類空參建構函式

多catch時父類異常一定要放在最下面

throw語句後面不能跟任何語句,因為執行不到

更多待補充.....

物件導向總結

成員變數 1.類中,方法外 2.建立物件存在與堆中,物件被 時一併消失 3.成員變數有預設值 區域性變數 1.方法中 2.呼叫方法存在於棧幀中,方法呼叫完畢隨棧幀一併消失 3.區域性變數沒有預設值 public class koo 重寫遵循 兩同兩小一大 兩同 1.方法名稱相同 2.引數列表相同 兩...

物件導向總結

物件導向 它是一種程式設計思想,一種通過多個物件之間互相協作完成功能處理流程的程式設計思路,它是相對於面向過程而言的,是面向過程程式設計思想的補充和完善,更加適用於處理複雜業務流程的系統開發。封裝 體現了物件對於敏感資料的保護特徵 繼承 體現了 的復用和功能的擴充套件 多型 體現了不同操作環境中 的...

物件導向總結

1 類與物件的區別 類是物件的抽象,物件是類的例項 2 成員變數 與 區域性變數區別 1 定義在類中 定義在方法中 2 作用在類中 作用於整個方法 3 系統自動初始化 使用前必須初始化 4 隨物件一同載入到堆中,物件無引用時銷毀 在方法呼叫時,在棧中產生一塊棧幀,方法執行完後消失3 封裝實現 1 屬...