定義介面使用關鍵字inte***ce,介面就是抽象方法與全域性常量的集合(純粹版的抽象類)
inte***ce
imyite***ce
為什麼說介面是純粹版的抽象類?抽象類可以包含普通方法而介面只能包含抽象方法。
介面使用大寫i開頭;子類要想使用介面,用implements實現介面,乙個子類可以同時實現多個介面(避免了單繼承侷限)
inte***ce
imessage
inte***ce
inews
class
messageimpl
implements
imessage
,inews
inte***ce
ibpublic
inte***ce
imessage
extends
ia,ib
(5)如果乙個抽象類繼承了介面,那麼抽象類當中可以不實現介面的方法。但是如果在有乙個普通類繼承了此抽象類,那麼此不同類一定要實現介面和抽象類裡面的方法。
inte***ce
iaabstract
class
bimplements
iaclass
cextends
b@override
public
void
fun2()
}
(6)乙個抽象類可以使用implements實現多個介面
但反過來介面不能繼承抽象類。因為一但介面繼承了抽象類,就必須覆寫抽象類中的抽象方法,而介面裡不能有已經實現的方法!
(7)當子類既需要實現介面又需要繼承抽象類,請先使用extends繼承乙個抽象類,而後使用implements實現多個介面
inte***ce
imessage
abstract
class
news
class
messageimpl
extends
news
implements
imessage
public
void
getnews()
}
a.定義操作標準
b.表示能力
c.(了解)分布式開發中暴露遠端服務方法。
介面優先原則:
在乙個操作可以使用抽象類又可以使用介面的時候,優先考慮使用介面。
//定義乙個usb介面
public
inte***ce
usb//u盤類
class
udisk
implements
usb@override
public
void
work()
}//印表機類
class
printdisk
implements
usb@override
public
void
work()
}class
computer
}public
static
void
main
(string[
] args)
class
macbookpro
implements
computer
}class
su***cebook
implements
computer
}//將所有產生computer物件例項的操作解耦到工廠類中。
class
compute***ctor
return computer;
}public
class
text1
class
macbookpro
implements
computer
}class
su***cebook
implements
computer
}class
alienware
implements
computer
}//工廠介面
inte***ce
compute***ctory
//微軟工廠類
class
msfactory
implements
compute***ctory
}//蘋果工廠類
class
implements
compute***ctory
}public
class
text1
}
a.對於簡單工廠模式,優點是簡單易於實現,建立物件過程應放在工廠內完成,但違背了開閉原則,如果要增加新的具體產品類,就必須修改工廠類。
b.對於工廠方法模式,是通過擴充套件來新增工廠類的,符合開閉原則,但客戶端必須感知到具體的工廠,知道有這麼個工廠的存在。而且由於每個產品都有自己的工廠,**量相比簡單工廠要大。
介面與工廠(設計模式)
介面是實現多重繼承的途徑,而生成遵循某個介面物件的經典方式就是工廠方法設計模式。這種方式與直接呼叫建構函式的不同,我們在工廠物件呼叫的是建立方法,該工廠的方法將生成介面的某個實現類的物件。理論上,通過這種方式,我們的 將完全與介面的實現分離,這就使得我們可以透明地將某個實現替換為另乙個實現。下面我們...
面向介面程式設計 工廠模式 單例模式
當與資料庫打交道,考慮到有各種各樣的資料庫,我們通常設計乙個dao介面與n個dao類,dao類實現dao介面,在處理類中定義乙個dao介面,並在配置檔案中設定這個介面使用的是哪個dao類。此種方法也叫控制反轉。當有好多介面時如userdao,categorydao,productdao時,我們通常設...
面向介面程式設計 工廠模式 單例模式
當與資料庫打交道,考慮到有各種各樣的資料庫,我們通常設計乙個dao介面與n個dao類,dao類實現dao介面,在處理類中定義乙個dao介面,並在配置檔案中設定這個介面使用的是哪個dao類。此種方法也叫控制反轉。當有好多介面時如userdao,categorydao,productdao時,我們通常設...