1. 程式人生 > >《JAVA程式設計思想》讀書筆記——多型、介面

《JAVA程式設計思想》讀書筆記——多型、介面

1,關於多型,物件點取域操作(成員物件)就不是多型的,因為任何域訪問操作都將由編譯器解析。

2,綜合考慮繼承,初始化的實際過程是:

a,將分配給物件的空間清零

b,呼叫基類的構造器。

c,按照宣告順序,呼叫成員的初始化方法。

d,呼叫匯出類的構造器。

3,包含抽象方法的類叫抽象類。介面中所有方法都抽象且為public的,介面可以包含域,但隱式就是static和final的(常用來定義常量類)。

4,使用介面的核心原因:

a,為了能夠向上轉型為多個基型別。

b,防止客戶端程式設計師建立該類的物件

5,介面可以擴充套件(extends)多個介面,類似於C++中的多繼承。

6,雖然通過介面中放入static final域來定義常量組,但是新版的JDK提供了更好的enum關鍵字

來定義常量。

7,總結:不應該優先選擇介面而不是具體的類。任何抽象性都應該是應真正的需求而產生的。所以,恰當的原則應該是優先選擇類而不是介面。從類開始,如果介面的的必須性變得非常明確,那麼久進行重構。介面是一種重要的工具,但是他們容易被濫用。

相關推薦

JAVA程式設計思想讀書筆記——介面

1,關於多型,物件點取域操作(成員物件)就不是多型的,因為任何域訪問操作都將由編譯器解析。 2,綜合考慮繼承,初始化的實際過程是: a,將分配給物件的空間清零 b,呼叫基類的構造器。 c,按照宣告順序,呼叫成員的初始化方法。 d,呼叫匯出類的構造器。 3,包含抽象方法的類叫

Java程式設計思想讀書筆記_8_

如果一種語言想實現後期繫結,就必須具有某種機制以便在執行時能判斷物件的型別,從而呼叫恰當的方法,也就是說,編譯器不知道物件的型別,但是方法呼叫機制能找到並呼叫正確的方法體; Java中除了static方法和final方法(private方法也屬於final方法)以外,其它的方法都是後期繫結的;(因此以前還可

Java程式設計思想讀書筆記(一)第1~1316章

目錄: 第1章 物件導論 1.1 伴隨多型的可互換物件   面向物件程式設計語言使用了後期繫結的概念。當向物件傳送訊息時,被呼叫的程式碼直到執行時才能確定。也叫動態繫結。   編譯器確保被呼叫方法的存在,並對呼叫引數和返回值執行型別檢查(Java是強型別的語言,無法

java程式設計思想讀書筆記 第十五章 泛 (匿名內部類和擦除)

1.匿名內部類 泛型還可以應用於內部類以及匿名內部類。下面的例子使用匿名內部類實現了Generator介面: public class Customer { private static long counter = 1; private f

Java程式設計思想】8.

在面向物件的程式設計語言中,多型是繼資料抽象和繼承之後的第三種基本特徵。 多型分離了“做什麼”和“怎麼做”,讓介面和實現分離開,改善了程式碼的可讀性和組織結構,建立了可拓展的程式。 封裝,通過合併特徵和行為來建立新的資料型別。 實現隱藏,通過將細節“私有化”把介面和實現分離開來。 多型,消除型

java程式設計思想讀書筆記二(物件的建立)

java物件 物件的建立 java的物件是在執行時建立的,建立物件的的觸發條件有以下幾種: 用new語句建立物件,這是最常用的建立物件方法。 運用反射手段,呼叫java.lang.reflect.Constructor類的newInstance()例項方法。

java程式設計思想讀書筆記一(面向物件)

面向物件 我們常見的程式設計正規化有指令式程式設計,函數語言程式設計,邏輯式程式設計,而面向物件程式設計也是一種指令式程式設計。 指令式程式設計式面向計算機硬體的一種抽象,有變數(儲存單元),賦值語句(獲取儲存指令),表示式(記憶體引用和算術運算)和控制語句(跳轉指令),命令式程

java程式設計思想讀書筆記三(HashMap詳解)

Map Map介面規定了一系列的操作,作為一個總規範它所定義的方法也是最基礎,最通用的。 AbstractMap AbstractMap是HashMap、TreeMap,、ConcurrentHashMap 等類的父類。當我們巨集觀去理解Map時會發現,其實Map就是一

Java程式設計思想讀書筆記——第六章:訪問許可權控制

第六章 訪問許可權控制 初學Java的時候很納悶,為什麼要提供各種訪問修飾,都用public不就行了,程式都能執行,還多省事 我感覺如果這個程式只有你自己去編寫,去維護,那麼其實訪問許可權可以忽略 但是,比如說我寫了一個第三方開源庫,有很多很多的人在使用我的庫,那麼如

程式設計思想 之「初始化順序協變返回型別」

溫馨提示:本系列博文(含示例程式碼)已經同步到 GitHub,地址為「java-skills」,歡迎感興趣的童鞋Star、Fork,糾錯。 在面向物件的程式語言中,有三個特性,分別為:封裝、繼承和多型。實現多型的前提是繼承,多型的作用是消除型別之間的耦

java程式設計思想讀書筆記----第十章 內部類

1、建立內部類   將類的定義置於外部類的裡面,在外部類中可以直接new一個內部類的事例,通常外部類會有一個方法,該方法會返回一個指向內部類的引用。如果從外部類非靜態方法之外的位置其它類建立某個內部類的物件,必須具體的指明這個物件的型別:OutClassNam

JAVA程式設計思想學習筆記(八)介面

介面 抽象類和抽象方法 抽象方法:這種方法不完整,僅有宣告而沒有方法體。所採用的語法如下: abstract void f(); 抽象類:包含抽象方法的類叫做抽象類,如果一個類包含一個或多個抽象方法,該類必須被限定為抽象的。 介面 關鍵字:interface 介面定

Java程式設計思想 第八章讀書筆記-

多型是面向物件三種基本特徵之一(繼承,抽象,多型) 多型存在的意義是什麼?自己的理解,多型消除了型別的耦合。如果一個方法的引數是基類物件,如果沒有多型,那麼我們需要判斷傳入的引數到底是基類的哪個衍生類,然後還掉統一方法名的方法,程式碼比較冗餘,和類的耦合度很高。有了多型,我

JAVA程式設計思想學習筆記(七)

多型 繫結 繫結: 將一個方法呼叫同一個方法主體關聯起來被稱作繫結。 前期繫結: 若在程式執行前進行繫結,叫做前期繫結,它是面嚮物件語言不需要選擇就預設的繫結方式。 後期繫結: 它的含義就是在執行時根據物件的型別進行繫結,也叫做動態繫結或執行時繫結。java中除了static和fin

Java程式設計思想學習筆記-第11章

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-famil

Java 009 面向物件(抽象類介面

知識點梳理 心得體會 小知識點 1.多型中成員訪問特點:成員方法看左右,子類都會先訪問父類構造方法(先初始化父類成員才能被子類呼叫),其他只看左邊 2.多型缺點:不能使用子類特有功能,解決辦法有兩種:一、建立子類物件調方法(不合理且佔記憶體)二、向下轉型:Zi z=(Zi)

JAVA程式設計思想學習筆記(一)

物件導論 1.1 抽象過程 Smalltalk的五個基本特性: 萬物皆為物件。 程式是物件的集合,它通過傳送訊息來告知彼此所要做的。 每個物件都有自己的由其他物件所構成的儲存。 每個物件都有其型別。 某一特定型別的所有物件都可以接受同樣的訊息。

java程式設計思想學習筆記——第1章 物件導論

1.1 抽象過程 面向物件思想的實質:程式可以通過新增新型別的物件使自身適用於某個特定問題。 面向物件思想的五個基本特徵: 1)萬物皆物件 2)程式是物件的集合 3)每個物件都有自己的由其他物件所構成的儲存 4)每個物件都有其型別 5)某一特定型別的所有物件都可以接收同樣的訊息 物件具有行為、

Java程式設計思想筆記14.型別資訊

執行時型別資訊使得你可以在執行時發現和使用型別資訊,主要有兩種方式: “傳統的”RTTI,它假定我們在編譯時已經知道了所有的型別; “反射”機制,它允許我們在執行時發現和使用類的資訊。 14.1 為什麼需要RTTI RTTI維護型別型別的資訊,為多型機制的實現提供基礎。 14.2 Cla

java程式設計思想學習筆記——第2章 一切都是物件

儘管java是基於C的,但是相比之下,java是一種更“純粹”的面向物件程式設計語言。 2.1 用引用操縱物件 一切都視為物件,因此可採用單一固定的語法。儘管這一切都看作物件,但操縱的識別符號實際上是物件的一個“引用(reference)”。 java語言的一個特性:字串可以用帶引號的文字初始化。通常,