一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

駁“面向?qū)ο蟮幕咎匦远鄳B(tài)”

 ihacku 2015-05-30

在網(wǎng)上常常能看到文章講面向?qū)ο蟮娜蠡咎卣?繼承"、"封裝"、"多態(tài)",我以為這是坊間流傳的最不靠譜的一個(gè)說(shuō)法。本文先談?wù)勂渲兄v到的一個(gè)特性:多態(tài)。多態(tài)是一個(gè)跟面向?qū)ο笸耆坏母拍?,兩者之間可以說(shuō)沒(méi)有任何必然聯(lián)系。當(dāng)然口說(shuō)無(wú)憑,下面是我經(jīng)過(guò)很長(zhǎng)時(shí)間查找到的一些來(lái)源比較可靠的資料對(duì)多態(tài)的說(shuō)法。

最早可查證的關(guān)于多態(tài)的說(shuō)法是一篇叫做 Fundamental Concepts in Programming Languages的論文,文中對(duì)多態(tài)的討論主要是用于實(shí)現(xiàn)運(yùn)算符的重載版本選擇,文中把多態(tài)分為兩種: ad-hoc多態(tài)和參數(shù)多態(tài),ad-hoc多態(tài)即指系統(tǒng)根據(jù)上下文自己決定如何選擇運(yùn)算符的行為,比如各種原生的運(yùn)算符都在此列。參數(shù)多態(tài)則是根據(jù)參數(shù)類型選擇。文中對(duì)參數(shù)多態(tài)的解釋則是用了一個(gè)頗為"函數(shù)式"的例子,根據(jù)傳入的函數(shù)類型參數(shù)的函數(shù)簽名來(lái)決定返回值類型。 

1985年左右的一篇論文On Understanding Types, Data Abstraction, and Polymorphis則詳細(xì)地論述總結(jié)了多態(tài)性的概念,文中給出了多態(tài)的分類:
polymorphism(多態(tài))
|-universal

| |- parametric 

| \- inclusion

\-ad-hoc

  |- overloading

  \- coercio 

這篇文章對(duì)多態(tài)的論述比較系統(tǒng),網(wǎng)上也有pdf版本,有興趣的朋友可以詳細(xì)閱讀。(inclusion多態(tài)聽起來(lái)比較陌生,但是其實(shí)它的另一個(gè)名稱是subtype Polymorphism,這也是唯一一種跟面向?qū)ο笙嚓P(guān)的多態(tài))


從上面的發(fā)展可以看出,多態(tài)是一個(gè)差不多跟面向?qū)ο笸瑫r(shí)(60年代)誕生的編程概念,有自己獨(dú)立的體系結(jié)構(gòu),并且這個(gè)概念非常廣泛地用于很多種編程語(yǔ)言的設(shè)計(jì)當(dāng)中。

關(guān)于面向?qū)ο蟾鄳B(tài)的關(guān)系,下面一段話用來(lái)解釋非常恰當(dāng)(來(lái)自The C++ programming language), 

Since both(wintercn注:根據(jù)上下文指template和abstract class) allow an algorithm to be expressed once and applied to a variety of types, people sometimes refer to both as polymorphic. 

意思是:因?yàn)閠emplate和abstract class兩種機(jī)制都能允許一個(gè)算法表達(dá)一次而用在多種不同類型當(dāng)中,所以人們把兩種都稱作多態(tài)。后文還講到abstract class提供的是運(yùn)行時(shí)多態(tài),template提供的是編譯時(shí)多態(tài)。(有趣的是,連面向?qū)ο蟮拇硇哉Z(yǔ)言之一C++本身都涉及到了一種跟面向?qū)ο蠛翢o(wú)關(guān)系的多態(tài)類型。)

 

所以事實(shí)上,多態(tài)并非面向?qū)ο蟮乃疆a(chǎn),更不是什么面向?qū)ο蟮幕咎卣鳎鄳B(tài)和面向?qū)ο蟮年P(guān)系是:面向?qū)ο笾械某橄箢?,提供了一種運(yùn)行時(shí)多態(tài)的實(shí)現(xiàn)方式。 


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    成人精品欧美一级乱黄| 精品香蕉国产一区二区三区| 国产精品一区二区视频大全| 亚洲av熟女一区二区三区蜜桃 | 九九热在线视频观看最新| 字幕日本欧美一区二区| 91香蕉国产观看免费人人| 日韩在线免费看中文字幕| 日韩人妻欧美一区二区久久| 国产精品香蕉免费手机视频| 91亚洲国产成人久久精品麻豆| 国产精品自拍杆香蕉视频| 男女午夜在线免费观看视频| 日本三区不卡高清更新二区| 亚洲国产精品av在线观看| 大香蕉久久精品一区二区字幕| 亚洲视频一区自拍偷拍另类| 欧美黑人暴力猛交精品| 欧美一级特黄大片做受大屁股| 亚洲精品国男人在线视频 | 国产一区二区熟女精品免费| 国产免费操美女逼视频| 日韩精品一区二区毛片| 国产欧美日韩在线精品一二区| 年轻女房东2中文字幕| 欧美日韩国产黑人一区| 亚洲国产四季欧美一区| 五月婷婷缴情七月丁香| 国产香蕉国产精品偷在线观看 | 亚洲中文字幕综合网在线| 少妇视频一区二区三区| 亚洲男女性生活免费视频| 一区二区三区亚洲国产| 一区二区三区在线不卡免费| 亚洲五月婷婷中文字幕| 国产精品99一区二区三区| 天堂热东京热男人天堂| 精品人妻一区二区三区在线看| 国产成人精品资源在线观看| 在线日韩中文字幕一区| 国产精品丝袜美腿一区二区|