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

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

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

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

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

接口:定義了一個(gè)實(shí)體可能發(fā)出的動(dòng)作。但是只是定義了這些動(dòng)作的原型,沒(méi)有實(shí)現(xiàn),也沒(méi)有任何狀態(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)通過(guò)接口可以實(shí)現(xiàn)不相關(guān)類的相同行為,而不需要了解對(duì)象所對(duì)應(yīng)的類。

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

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

三.一些接口的疑問(wèn):

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

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

你當(dāng)然也可以不用接口,直接在類里面寫方法,但是如果你的一組方法需要在很多類里實(shí)現(xiàn),那么把它們抽象出來(lái),做成一個(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í)際上在歷史上,接口在很大程度上,是為了解決多繼承帶來(lái)的種種問(wèn)題而設(shè)計(jì)出來(lái)的。

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方式)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-10-10
  • C# PropertyInfo類案例詳解

    C# PropertyInfo類案例詳解

    這篇文章主要介紹了C# PropertyInfo類案例詳解,本篇文章通過(guò)簡(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)單用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 最新評(píng)論

    孝昌县| 庆元县| 乐至县| 武威市| 喀什市| 开平市| 巴彦淖尔市| 大厂| 农安县| 浪卡子县| 永吉县| 兰溪市| 扎囊县| 尉犁县| 宿州市| 增城市| 龙陵县| 喀什市| 清远市| 大理市| 华亭县| 门源| 中方县| 潍坊市| 香河县| 峨山| 湟源县| 那坡县| 怀集县| 竹山县| 托里县| 会昌县| 洪湖市| 四川省| 乐都县| 玛纳斯县| 株洲市| 义乌市| 苗栗县| 莫力| 天水市|