【筆記】Java編程思想—一多態

一種類型與其他類型從同一個基類導出,多態方法調用使導出類表現出區別。

多態也稱爲動態綁定;

1、讓Instrument的每種子類如Wind,Strings,Brass都能使用tune方法

不管導出類,讓代碼只與基類打交道更好




爲每個數組元素draw時,與類型有關的特定行爲會奇蹟般發生。對draw的調用是動態綁定的。draw就是多態方法調用。


2、動態綁定:方法調用與方法主體關聯起來稱作綁定,java中都是後期綁定,運行時根據對象類型進行綁定。

用了final後,可防止他人覆蓋該方法。可以關閉動態綁定。




tune是多態方法調用

當instrument接口中添加了其他方法,tune不需要改變


3、抽象類

Instrument類的目的是爲其他導出類創建一個通用接口

包含抽象方法的類叫抽象類

繼承抽象類,必須重寫基類的抽象方法


abstract抽象類不要求所有方法都是抽象的。

interface則是更純粹的抽象類,無方法體。


4、構造器與多態

構造器是隱式static,無多態性

5、構造器調用順序

先調用基類構造器,再初始化成員變量,最後初始化導出類構造器

6、構造器類避免調用多態方法,可覆蓋的基類抽象方法,只能調用基類中的final方法或private方法。


7、用繼承表達行爲間的差異,並用字段(組合)表達狀態上的變化


通過繼承得到兩個不同的子類HappyActor和SadActor,用於表達act方法的差異。而Stage通過運用組合使自己的狀態發生變化。

8、向上轉型安全,但會丟失導出類中的擴展接口。向下轉型不安全

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章