抽象類 繼承層越高
類就更通用並且更抽象
有些層中的祖先類非常通用
更適於作為其他類的框架
而不適於作為具體類
來使用其特定實例
比如
假設電子消息系統包括電子郵件
傳真和語音郵件
它必須能處理文本消息
傳真消息和語音消息
按照oop原則
該程序應由文本消息類(textMessage)
語音消息類(voiceMessage)和傳真消息類(faxMessage)
而信箱需要存儲和混合這些消息
因此還應由總體把握的消息類Message
為什麼進行如此高層的抽象呢?答案是
這會使類設計更清晰
在面向對象的概念中
我們知道所有的對象都是通過類來描繪的
但是反過來卻不是這樣
並不是所有的類都是用來描繪對象的
如果一個類中沒有包含足夠的信息來描繪一個具體的對象
這樣的類就是抽象類
抽象類往往用來表征我們在對問題領域進行分析
設計中得出的抽象概念
是對一系列看上去不同
但是本質上相同的具體概念的抽象
比如
如果我們進行一個圖形編輯軟件的開發
就會發現問題領域存在著圓
三角形這樣一些具體概念
它們是不同的
但是它們又都屬於形狀這樣一個概念
形狀這個概念在問題領域是不存在的
它就是一個抽象概念
正是因為抽象的概念在問題領域沒有對應的具體概念
所以用以表征抽象概念的抽象類是不能夠實例化的
object類object類是所有類的根類
在不明確給出超類的情況下
java會自動把object作為要定義類的超類
可以使用類型為object的變量指向任意類型的對象
Object obj=new Employee(
huyag
);
當然
Object類型的變量只能用作各種值得通用持有者
要對他們進行任何專門的操作
都需要知道他們的原始類型並進行類型轉換
Employee e=(Employee)obj;
object的常用方法
boolean equals()
String toString()
Class getClass()
Object clone()
比較對象是否相等
如果兩個對象指向同一內存區域
則返回真
否則返回false
返回表示當前對象值的字符串
返回類定義的類對象
該對象含有關於當前對象的信息
創建對象的副本
java為新實例分配內存
並且將當前類所占內存中的內容拷貝到新實例的內存中
對象包裝類 有時需要將基本類型
如int轉換成對象
所有的基本類型都有相應的類
例如整數類Integer與基本類型int相對應
這些類型常稱為對象包裝類
包裝類有明顯的名字
整數類(Integer)
長整形類(Long)
浮點類型(Float)
雙精度類(Double)
字符類(Character)和布爾類(Boolean)
前四個類都是由共同的父類數字類Number派生而來的
包裝類是最終類
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25665.html