執行時的多型:
我們所說的多型一般是執行時的多型。
要使用多型,在宣告物件時就應該遵循一條法則:宣告的總是父類型別或介面型別,建立的是實際型別。物件導向的三大特徵:封裝 繼承 多型多型通過分離 做什麼 和 怎麼做 ,從另外的乙個角度將介面和實現分離開來。
封裝通過合併特徵和行為來建立新的資料型別。「實現隱藏」則是通過將細節「私有化」把介面和實現分離開。
多型的作用是消除型別之間的耦合關係。
多型也叫作動態繫結,後期繫結,執行時繫結。
首先是乙個多型的例子:
class instrument
}public
class
wind
extends
instrument
}public
class
music
public
static
void
main(string args)
}// output:
middle_c
public
class
privateoverride
public
static
void
main(string args)
}class derived extends privateoverride
} /* output:
private f()
class
super
}class
subextends
super
public
int getsuperfield()
}public
class
fieldaccess
} /* output:
sup.field = 0, sup.getfield() = 1
sub.field = 1, sub.getfield() = 1, sub.getsuperfield() = 0
*///:~
根據以上規則,當我們手動寫dispose()方法的時候,我們銷毀的順序應該是和初始化的順序是相反的,因為這樣可以避免某個子類物件依賴其他的物件。
如果遇到類之間有共享變數的情況,那麼銷毀的順序就變得複雜了,一般採用計數器的方法,記錄著引用的個數。
在構造器內唯一安全呼叫的那些方法是final方法,也適用於private方法,因為他們自動屬於final方法。
第8章指標
1.指標 指標是儲存記憶體位址的變數。在記憶體中每一塊儲存單元都有相對應的唯一的位址編號,指標就是一塊儲存這種編號的空間 2.對於乙個變數可以用 符號來獲取它的位址 int a int p a 什麼樣的變數,就需要宣告對應的型別的指標。這是為了告訴系統,我從這個位址開始要讀取多少位的記憶體塊,才能正...
第8章 函式
位置實參,關鍵字是參 預設值,注意順序,把已經有預設值的放在最後 topping這個可以接收任何實參,一般放形參最後,它是個空元組,當作列表一樣就行 def pet name,size 27 預設值 print name size n input please get me a name s inp...
第8章 函式
定義函式,注意書寫格式 向函式傳遞資訊 實參和形參 傳遞實參 位置實參,注意順序 關鍵字實參,名稱和值對應,寫在函式裡,務必準確指定函式定義的形參名 預設值混合使用時,注意格式,讓實參變成可選的,新增預設值,並且放在形參列表最後 切片法 建立列表副本 星號建立空元組,傳遞任意數量的實參 結合使用位置...