最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中類與接口的區(qū)別個(gè)人總結(jié)

 更新時(shí)間:2015年06月16日 10:32:17   投稿:junjie  
這篇文章主要介紹了C#中類與接口的區(qū)別個(gè)人總結(jié),本文講解了類與接口的區(qū)別、接口的用處主要體現(xiàn)在下面幾個(gè)方面、一些接口的疑問等內(nèi)容,需要的朋友可以參考下

一.類與接口的區(qū)別

類:描述了一個(gè)實(shí)體,包括實(shí)體的狀態(tài),也包括實(shí)體可能發(fā)出的動(dòng)作。

接口:定義了一個(gè)實(shí)體可能發(fā)出的動(dòng)作。但是只是定義了這些動(dòng)作的原型,沒有實(shí)現(xiàn),也沒有任何狀態(tài)信息。

1.接口與類區(qū)別:

(1)接口有點(diǎn)象一個(gè)規(guī)范、一個(gè)協(xié)議,是一個(gè)抽象的概念;

(2)而類則是實(shí)現(xiàn)了這個(gè)協(xié)議,滿足了這個(gè)規(guī)范的具體實(shí)體,是一個(gè)具體的概念。

(3)從程序角度,簡(jiǎn)單理解,接口就是函數(shù)聲明,類就是函數(shù)實(shí)現(xiàn)。需要注意的是同一個(gè)聲明可能有很多種實(shí)現(xiàn)。

2.接口與抽象類的區(qū)別:

(1)A class can implement any number of interfaces but can subclass at most one abstract class.

(2)An abstract class can have nonabstract methods, which are usually instance of the TEMPLATE METHOD pattern. All the methods of an interface are abstract,

whether or not this declaration is explicit.

(3)An abstract class can declare instance variable that its subclass inherit. An interface cannot declare instance variables, although it can establish static final fields.

(4)An abstract class can define constructors, an interface cannot.

(5)An abstract class can have methods whose visibility is protected, private, or none(package);every method in an interface must be public.

(6)An abstract class inherits form Object, including such method as clone() and equals().

二. 接口的用處主要體現(xiàn)在下面幾個(gè)方面:

(1)通過接口可以實(shí)現(xiàn)不相關(guān)類的相同行為,而不需要了解對(duì)象所對(duì)應(yīng)的類。

(2)通過接口可以指明多個(gè)類需要實(shí)現(xiàn)的方法。

(3)通過接口可以了解對(duì)象的交互界面,而不需了解對(duì)象所對(duì)應(yīng)的類。

三.一些接口的疑問:

1、從書中看到的是java程序的接口中只定義了常量及空方法,空的方法有什么用呢,還要在類中寫方法體,那還要接口干什么。

答:接口中定義類方法的原型,但是不能說是空方法,因?yàn)榭辗椒ǖ囊馑际怯袑?shí)現(xiàn)體,只不過實(shí)現(xiàn)體是空操作。實(shí)際上接口沒有定義任何實(shí)現(xiàn)體。具體的實(shí)現(xiàn)體都是在實(shí)現(xiàn)接口的類中,接口只是定義了這些方法的調(diào)用方式。

你當(dāng)然也可以不用接口,直接在類里面寫方法,但是如果你的一組方法需要在很多類里實(shí)現(xiàn),那么把它們抽象出來,做成一個(gè)接口規(guī)范,不是更好么?

2、一個(gè)程序中寫了2個(gè)接口,并在同一個(gè)類中寫方法體,這與多繼承有什么關(guān)系。

答:一個(gè)類描述了一個(gè)實(shí)體,這個(gè)實(shí)體可能是一個(gè)復(fù)雜的對(duì)象,它的動(dòng)作很多,如果把這些動(dòng)作分類,用接口a定義其中的某一組動(dòng)作,接口b定義其中的另外一組動(dòng)作,這樣的結(jié)構(gòu),比較清楚。

這種方式具備了多繼承的優(yōu)點(diǎn),避免了多繼承的缺陷。實(shí)際上在歷史上,接口在很大程度上,是為了解決多繼承帶來的種種問題而設(shè)計(jì)出來的。

3、包中那些已定義的接口,怎么知道那里面定義了什么方法。

答:接口里定義了方法的輸入輸出,這些都是協(xié)議,具體的實(shí)現(xiàn)都在每個(gè)類中。對(duì)于很多只需要抽象接口的地方,不需要知道具體的類是什么,只要這個(gè)類實(shí)現(xiàn)了這個(gè)接口就可以了。

相關(guān)文章

  • C#導(dǎo)出生成excel文件的方法小結(jié)(xml,html方式)

    C#導(dǎo)出生成excel文件的方法小結(jié)(xml,html方式)

    C#導(dǎo)出生成excel文件的方法小結(jié)(xml,html方式)。需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-10-10
  • C# PropertyInfo類案例詳解

    C# PropertyInfo類案例詳解

    這篇文章主要介紹了C# PropertyInfo類案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C# Winfom 中ListBox的簡(jiǎn)單用法詳解

    C# Winfom 中ListBox的簡(jiǎn)單用法詳解

    這篇文章主要介紹了C# Winfom 中ListBox的簡(jiǎn)單用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 最新評(píng)論

    开化县| 乌兰县| 托克托县| 闵行区| 长丰县| 光山县| 白银市| 宁海县| 泰来县| 沂水县| 甘孜县| 隆安县| 禹城市| 克东县| 临汾市| 府谷县| 凤山市| 合江县| 五莲县| 东乌珠穆沁旗| 和平区| 白水县| 鄂州市| 江源县| 宝鸡市| 石河子市| 广南县| 绥棱县| 涪陵区| 永年县| 兴业县| 河曲县| 潢川县| 嘉峪关市| 九龙县| 永吉县| 泸溪县| 吐鲁番市| 唐海县| 普陀区| 宿松县|