1. 程式人生 > >第三天 面向物件的完結

第三天 面向物件的完結

         從早上十點基本上是一直坐到下午8點      最讓我感覺受不了的 是我那蝸牛般的寫程式碼速度   很困惑  我打字的速度也不慢   從來也不用看鍵盤  但打程式碼 怎麼會有這麼多的錯誤   還得看著鍵盤打    堅信孰能生巧  什麼東西都不是一蹴而就的    懶惰去做人  有點會有所成   自古以來的 道理   激勵下自己    開始總結

         今天算是把面向物件都看完了   內容是有點多  一個一個來   整體的核心都離不開多型   多型是重點

一、繼承

1、繼承裡面   最重要的我認為就是 向上轉型 和向下轉型  說白了  就是物件的多型性   

 向上轉型  就是用子類的匿名物件為父類例項化    如果子類覆寫了父類的方法1   此時呼叫父類的方法1即呼叫被子類覆寫的方法1;

向下轉型     向下轉型前必須進行向上轉型    完成向下轉型之後 子類可以呼叫自己和父類的所有方法(採用super)

  對於多型 具體的是個什麼概念   不好描述  簡單點講   就是轉型   就是可以使用任何子類的匿名物件為父類例項化  這就是多型

二、抽象類和介面 

1、 抽象類和介面  都不能例項化  必須通過子類的匿名物件為其例項化  這其實也就是多型的概念    抽象類和多型 能更具體的體現多型這個概念

2、介面: java中繼承是單繼承   即所有的類只能有一個父類  但是父類還可以有父類 允許多重繼承   介面的出現 解決了這個問題  一個類可以實現多個介面   其實介面也是一個抽象類知識要求更加嚴格的抽象類   介面中的屬性都是全域性常量  方法都是抽象方法  一個類實現介面 必須覆寫它所有的抽象方法

3、 如果你只想使用介面中的某一個或幾個方法怎麼辦  因為實現介面就必須覆寫它的所有方法   全部覆寫的話  有點浪費程式碼空間 這個時候可以  用一個抽象類去實現介面 抽象類可以覆寫介面中的一部分方法 方法體為空   然後子類去繼承抽象類 這樣就子類就可以有選擇的覆寫自己需要的方法   這其實就是一種設計模式 介面卡設計模式

三、設計模式

1、模板設計:即以一個抽象類為模板    子類繼承這個模板利用抽象方法做不同的事情   java中繼承最好都是去繼承抽象類   一個已經實現好的類是沒有繼承的必要的

2、制定標準:以一個介面為標準   另外一個事物接收的都是實現了這個標準的事物 典型的可以以USB 為例  電腦上的usb介面 所能接收的 即能插的都是有usb插口的事物  比如u盤印表機  手機的資料線    這些都是都是實現了usb插口的事物  所以usb插口就是一個介面標準

3、工廠設計:工廠即一個過渡端  解決客戶端的方便問題    也是要使用介面   所有實現了介面的子類 都將引用傳到工廠中  由工廠判斷是哪個子類  將結果返回給客戶端

4、代理設計:  即做某一件事情可能需要很多步驟  你只關心最終的拍板  所以很多其他的就要找代理來做了    同樣是介面  介面中定義的是最後的操作   你和代理都要實現這個介面   你只需要覆寫這個最後的操作  代理的構造方法中接收你的物件引用,代理中存在很多其他的步驟方法   並且都在覆寫的最後操作方法中呼叫。

5、介面卡設計

四、程式  寵物店設計 運用到了制定標準和工廠設計

 五、object類

object類是所有類的父類包括介面和抽象類  它可以接受任何引用型別的物件

六、匿名內部類

通過匿名內部類  可以發現介面和抽象類也是能夠直接例項化的   只是你要實現他們中的抽象方法  在例項化的時候