抽象類別Abstract:
是用來定義相同種類的物件,所需要具備的共通特性;例如人,是所有人的基底,人有思考、吃、喝、睡覺等等共同的特性,但是每種人行為方式不一樣,所以將這些基本特性,寫成抽象類別與方法,讓其它類別來繼承並且實做方法,這就就抽象類別的意義。
介面Interface:
是用來定義不同種類的物件中,針對某種特性,所需要具備的相同功能;例如走路,機器人,和人類,是兩種不同的類別,但有相同的功能。
另一種思考:
類別是對物件的抽象:建構物件的各式成員與行為模式。
抽象類別是對類別的抽象:提供基底,專門給同性質的類別繼承。
介面是對行為的抽象:任何類別若繼承介面並且實做後,皆具有此功能。
一般來說,interface 較類似抽象類別,但它和Abstract有以下的不同點:
- interface 裡所有被宣告的 property、method、event 都是 public 的abstract class 裡你可以有 private 和 protected 的相關宣告
- interface 裡所有被宣告的 property、method 都必需要被繼承且實作才能使用abstract class 你可以不用實作,因為你可以 new 一個 abstract class雖然那沒什麼意義,但是你沒辦法直接 new一個 interface,你必需 new 出繼承了該 interface 並實作的 class,再從那上面取得(Query)該interface。
- interface 在 C# 裡可以多重繼承,class 只能單一繼承。
-雲遊山水為知已逍遙一生而忘齡- 電腦神手
沒有留言:
張貼留言