最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

程序設(shè)計(jì)中的抽象類與接口

2020-10-30 16:13 作者:Tuple_元組  | 我要投稿

一、導(dǎo)入語:

抽象類和接口都是進(jìn)行面向?qū)ο笤O(shè)計(jì)時(shí)專用的設(shè)計(jì)結(jié)構(gòu),在實(shí)際進(jìn)行項(xiàng)目設(shè)計(jì)時(shí),經(jīng)常需要考慮的問題就是使用抽象類還是接口?下面通過對(duì)于抽象類和接口進(jìn)行簡單的比較,了解兩者之間的區(qū)別和聯(lián)系,從而在實(shí)際設(shè)計(jì)時(shí)使用恰當(dāng)?shù)慕Y(jié)構(gòu)。

二、相關(guān)概念

1、抽象類:聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽像類(abstract class)或含有一個(gè)或多個(gè)抽象方法的類稱為抽象類且不能實(shí)例化。

2、接口:是把隱式公共方法和屬性組合起來,以封裝特定功能的一個(gè)集合。

三、抽象類與接口的異同

1、類是對(duì)對(duì)象的抽象,抽象類則是對(duì)類的抽象.而接口只是一個(gè)行為的規(guī)范或規(guī)定。

2、一個(gè)類一次可以實(shí)現(xiàn)若干個(gè)接口,但是只能擴(kuò)展一個(gè)父類(繼承一個(gè)父類)。

3、如果抽象類實(shí)現(xiàn)接口,則可以把接口中方法映射到抽象類中作為抽象方法而不必實(shí)現(xiàn),而在抽象類的子類中實(shí)現(xiàn)接口方法。

4、接口和抽象類都不能實(shí)例化,都包含未實(shí)現(xiàn)的方法聲明,派生類必須實(shí)現(xiàn)未實(shí)現(xiàn)的方法,一個(gè)抽象類可以包含抽象和非抽象方法,當(dāng)一個(gè)類繼承于抽象類,那么這個(gè)派生類必須實(shí)現(xiàn)所有的基類抽象方法,而接口則只能對(duì)其所有成員進(jìn)行方法簽名(方法、其他成員)。

5、抽象類用abstract class聲明,接口用interface聲明,接口名稱前要加‘I’,接口中的方法或?qū)傩郧懊娌荒苡行揎椃?、方法沒有方法體。

interface IInterface

{

? ? void Method1();//只能聲明方法簽名

}

abstract class MyAbs:IInterface? //抽象類還可繼承于接口

{

? ?public abstract void AbMethod1();//抽象方法

? ?public void Method1() //非抽象方法

? ? {

? ? ? ? Console.WriteLine("MethodimplementedfromtheIInterface");

? ? }

}

class MyClass:MyAbs

{

? ? public override void AbMethod1() //繼承后,必須實(shí)現(xiàn)抽象方法

? ? {??

? ? ? ? ?Console.WriteLine("Abstarct method #1");?

? ? }??

}

class MyClient

{

? ? public static void Main()

? ? {

? ? ? ? MyClass mc=new MyClass();

? ? ? ? mc.Method1();

? ? }

}

四、抽象類與接口的用法

1、什么時(shí)候使用抽象類或接口?

當(dāng)設(shè)計(jì)中為了規(guī)范類中方法聲明的結(jié)構(gòu)(即類的行為)時(shí),使用抽象類或接口。也就是強(qiáng)制子類對(duì)外部提供統(tǒng)一的方法聲明時(shí),使用抽象類或接口。

2、什么時(shí)候使用抽象類?

當(dāng)滿足以下的條件時(shí),最好使用抽象類進(jìn)行設(shè)計(jì):

a)子類不繼承其它父類

b)子類中存在完全相同的功能實(shí)現(xiàn)的方法

c)子類中存在相同的屬性

d)設(shè)計(jì)出的結(jié)構(gòu)需要繼承其它類

當(dāng)需要滿足d條件時(shí),只能使用抽象類,否則也可以考慮使用接口實(shí)現(xiàn)。

3、什么時(shí)候使用接口?

當(dāng)滿足以下的條件時(shí),最好使用接口進(jìn)行設(shè)計(jì):

a)子類已經(jīng)繼承了其它父類

b)子類中不存在完全相同的功能實(shí)現(xiàn)方法

c)子類中不存在相同的屬性

d)設(shè)計(jì)出的結(jié)構(gòu)不需要繼承其它類

當(dāng)需要滿足a條件時(shí),只能使用接口,否則也可以考慮使用抽象類實(shí)現(xiàn)。

4、抽象類和接口的其它用途

a)禁止創(chuàng)建該類的對(duì)象時(shí),可以把該類聲明為抽象類。

b)當(dāng)需要存儲(chǔ)大量的常量數(shù)據(jù),而這些常量數(shù)據(jù)將會(huì)在項(xiàng)目中的多個(gè)類之間使用時(shí),可以使用接口。

c)當(dāng)需要統(tǒng)一具有某種功能的類的對(duì)象時(shí),可以使用接口。


程序設(shè)計(jì)中的抽象類與接口的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
方正县| 汽车| 泸州市| 宣汉县| 湖南省| 桂阳县| 抚宁县| 辽宁省| 眉山市| 丰宁| 洛宁县| 双柏县| 呼玛县| 贵州省| 枣强县| 洱源县| 德兴市| 图木舒克市| 灵山县| 革吉县| 博白县| 福建省| 汾阳市| 探索| 城市| 池州市| 田阳县| 祁连县| 利津县| 樟树市| 南川市| 临夏县| 万年县| 南雄市| 元氏县| 桂东县| 竹山县| 昌都县| 商丘市| 萨嘎县| 遵义县|