青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 195,  comments - 30,  trackbacks - 0
原文地址:http://hi.baidu.com/dingzhoufang/blog/item/1f93026d1de7c0fd431694c4.html


繼承性、封裝性和多態(tài)性是面向?qū)ο蟮娜齻€(gè)核心概念,下面就來(lái)看看在
C++Java

是如何實(shí)現(xiàn)面向?qū)ο髾C(jī)制的:

一 繼承性

面向?qū)ο蠓椒ㄖ械睦^承機(jī)制使子類可以自動(dòng)地?fù)碛懈割惖娜繉傩院筒僮鳎ǚ椒ǎ?/span>

1C++

派生類是C++中實(shí)現(xiàn)繼承性的語(yǔ)法概念。派生類的一般聲明語(yǔ)法為:

Class 派生類名 :繼承方式 基類名1,繼承方式 基類名2,…,繼承方式 基類名n

{

派生類成員聲明;

}

其中:繼承方式有public, protected, private三種,默認(rèn)值為private。類的繼承方式指定了派生類成員以及類外對(duì)象對(duì)于從基類繼承來(lái)的成員的訪問(wèn)權(quán)限。

C++中,一個(gè)派生類(子類)可以同時(shí)有多個(gè)直接基類(父類),即C++支持多繼承。

當(dāng)然一個(gè)派生類(子類)也可以只有一個(gè)直接基類(父類),稱此種情況為單繼承。在派生的過(guò)程中,派生出來(lái)的新類也同樣可以作為基類再繼續(xù)派生新的類。一個(gè)基類可以同時(shí)派生出多個(gè)派生類,即一個(gè)類可以同時(shí)作為多個(gè)派生類的基類。

2java

java語(yǔ)言中,子類對(duì)父類的繼承是通過(guò)在類的聲明中,用關(guān)鍵字extends來(lái)說(shuō)明的。其語(yǔ)法形式為:

[ClassModifier] class ClassName extends SuperClassName [implements interface]

{

子類的屬性和方法;

}

其中:關(guān)鍵字extends說(shuō)明要聲明的類需要繼承父類的屬性和行為,SuperClassName是被繼承的父類的名稱。

Java 要求聲明的每個(gè)類都有父類,當(dāng)沒(méi)有顯示的指定父類時(shí),父類隱含為java.lang.Object。一個(gè)父類可以同時(shí)擁有多個(gè)子類,這是該父類實(shí)際上是所有子類的公共屬性和方法的集合,而每一個(gè)子類則是父類的特殊化,是在公共屬性的基礎(chǔ)上的功能(方法),內(nèi)涵(屬性(變量))的擴(kuò)展和延伸。

Java不支持類的多重繼承,只支持類的單繼承。即每個(gè)子類只能有一個(gè)直接父類。類的層次結(jié)構(gòu)為樹狀結(jié)構(gòu),Object類為樹的根節(jié)點(diǎn)。

二 封裝性

封裝是指將從現(xiàn)實(shí)世界中抽象得到的數(shù)據(jù)成員和代碼成員相結(jié)合,形成一個(gè)有機(jī)的整體,即將數(shù)據(jù)與操作數(shù)據(jù)的行為進(jìn)行有機(jī)的結(jié)合。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,可以通過(guò)封裝,將一部分成員作為類與外部的接口,將其他的成員隱藏起來(lái),以達(dá)到對(duì)數(shù)據(jù)訪問(wèn)權(quán)限的有效控制。

(1)       C++

C++中,封裝是借助于類(Class)來(lái)實(shí)現(xiàn)的。對(duì)象是類類型的數(shù)據(jù),即為類的實(shí)例。C++中聲明類的語(yǔ)法如下:

Class 類名稱{

Public :

        外部接口;

Protected:

保護(hù)型成員;

Private:

        私有成員;

}

(2)       java

java中,封裝也是借助于類(Class)來(lái)實(shí)現(xiàn)的。對(duì)象是類類型的數(shù)據(jù),即為類的實(shí)例。java中聲明類的語(yǔ)法如下:

[public][abstract | final] class 類名稱 [extends 父類名稱] [implements 接口名稱列表]{

變量成員聲明及初始化;

方法聲明及方法實(shí)現(xiàn)(方法體);

}

其中:

Class是關(guān)鍵字,表明其后聲明的是一個(gè)類。

Class前的修飾符可以有多個(gè),用來(lái)限定類的使用方式。Public為存取控制符,表明此類為公有類,abstract指明此類為抽象類,final指明此類為終結(jié)類。

類名稱是用戶為該類所起的名字,它應(yīng)該是一個(gè)合法的標(biāo)識(shí)符,并盡量遵從命名約定。

Extends是關(guān)鍵字,如果所聲明的類是從某一個(gè)父類派生而來(lái)的,那么父類的名字應(yīng)寫在extends之后。

Implements是關(guān)鍵字,如果所聲明的類要實(shí)現(xiàn)某些接口,那么接口的名字應(yīng)寫在implements之后。

類的聲明體中有兩部分,一部分是數(shù)據(jù)成員變量的聲明及初始化,可以有多個(gè);另一部分是成員方法的聲明及實(shí)現(xiàn),也可以有多個(gè)。

多態(tài)性

多態(tài)的主要意思是:“一個(gè)名字,多種語(yǔ)義;或相同的界面,多種實(shí)現(xiàn)”。多態(tài)性是一種方法,使在多個(gè)類中可以定義一個(gè)操作和屬性名,并在每一個(gè)類中有不同的實(shí)現(xiàn)。正式的說(shuō)法就是:同一個(gè)消息被不同的對(duì)象接收時(shí),可產(chǎn)生不同的動(dòng)作或執(zhí)行結(jié)果,即每個(gè)對(duì)象將根據(jù)自己所屬類中定義的操作執(zhí)行。

(1)       C++

C++中的多態(tài)性有兩種情況:一種是編譯時(shí)多態(tài)性,它是由重載函數(shù)支持的,強(qiáng)調(diào)的是函數(shù)名相同,函數(shù)參數(shù)和函數(shù)體不同。函數(shù)調(diào)用與函數(shù)體的匹配在編譯時(shí)就能確定。另一種是運(yùn)行時(shí)多態(tài)性,這是由虛函數(shù)支持的,它強(qiáng)調(diào)的是完全單一的界面,不同的實(shí)現(xiàn);即函數(shù)名,返回類型,函數(shù)參數(shù)類型,順序,個(gè)數(shù)完全相同,但函數(shù)體不同。這種情況下,函數(shù)調(diào)用與函數(shù)體的匹配在運(yùn)行時(shí)才能確定。

函數(shù)重載:兩個(gè)或兩個(gè)以上的函數(shù),取相同的函數(shù)名,但是形參的個(gè)數(shù)或者類型不同,編譯器根據(jù)實(shí)參和形參的類型及個(gè)數(shù)的最佳匹配,自動(dòng)確定調(diào)用哪一個(gè)函數(shù)。C++允許功能相近的函數(shù)在相同的作用域內(nèi)以相同的函數(shù)名定義(不同的作用域內(nèi)的同名函數(shù)不是重載,此時(shí)其生命周期就不一樣),從而形成重載。

虛函數(shù):是使用virtual關(guān)鍵字來(lái)限定的非靜態(tài)的成員函數(shù),虛函數(shù)經(jīng)過(guò)派生之后,在類簇中就可以實(shí)現(xiàn)運(yùn)行過(guò)程中的多態(tài)。如果需要通過(guò)基類的指針指向派生類的對(duì)象,并訪問(wèn)某個(gè)與基類同名的成員(若為函數(shù),其原型完全相同),那么首先在基類中將這個(gè)同名函數(shù)定義為虛函數(shù)。這樣,就可以通過(guò)基類類型的指針,來(lái)訪問(wèn)該同名的函數(shù),使得屬于不同派生類的不同對(duì)象產(chǎn)生不同的行為,從而實(shí)現(xiàn)運(yùn)行過(guò)程的多態(tài)。虛函數(shù)定義語(yǔ)法如下:

Virtual 函數(shù)返回值類型    函數(shù)名稱(形參列表){

函數(shù)體(函數(shù)的實(shí)現(xiàn));

}

虛函數(shù)的聲明只能出現(xiàn)在類聲明的函數(shù)原型聲明之前,而不能在函數(shù)體實(shí)現(xiàn)的時(shí)候才聲明。只要在基類中聲明,而不要在派生類中再聲明。若派生類沒(méi)有顯式的給出虛函數(shù)聲明,此時(shí)系統(tǒng)會(huì)自動(dòng)的按照以下規(guī)則來(lái)判斷一個(gè)函數(shù)是不是虛函數(shù):

.該函數(shù)是否與基類的虛函數(shù)有相同的名稱;

.該函數(shù)是否與基類的虛函數(shù)有相同的參數(shù)個(gè)數(shù)及相同的對(duì)應(yīng)參數(shù)類型;

.該函數(shù)是否與基類的虛函數(shù)有相同的返回值或者滿足賦值兼容規(guī)則的指針,引用型的返回值。

如果從名稱,參數(shù)和返回值三方面檢查之后,派生類的函數(shù)滿足了上述條件,就被自動(dòng)確定為虛函數(shù)。

運(yùn)行過(guò)程中的多態(tài)需要滿足以下三個(gè)條件:①類之間應(yīng)滿足賦值兼容規(guī)則(指在需要基類對(duì)象的任何地方都可以使用公有派生類的對(duì)象來(lái)代替,這種代替包括:派生類的對(duì)象可以賦值給基類的對(duì)象;派生類的對(duì)象可以初始化基類的引用;派生類對(duì)象的地址可以賦給指向基類的指針。在替代之后,派生類的對(duì)象就可以作為基類的對(duì)象來(lái)使用,但只能使用從基類繼承來(lái)的成員,即在基類出現(xiàn)的場(chǎng)合可以使用派生類進(jìn)行代替,但是代替之后派生類僅僅發(fā)揮出基類的作用);②要在基類中聲明虛函數(shù);③要由成員函數(shù)來(lái)調(diào)用或者是通過(guò)指針,引用來(lái)訪問(wèn)虛函數(shù)。(如果是使用對(duì)象名來(lái)訪問(wèn)虛函數(shù),則聯(lián)編在編譯過(guò)程中就可以進(jìn)行(靜態(tài)聯(lián)編),而無(wú)需在運(yùn)行過(guò)程中進(jìn)行)

(2)       java

java 中,利用向上塑型(type-casting)技術(shù)(類型轉(zhuǎn)換),任何一個(gè)子類的對(duì)象或引用變量都可以被塑型((自動(dòng)的)類型轉(zhuǎn)換)為其父類的對(duì)象,即一個(gè)父類的對(duì)象或引用變量可以指向不同的子類對(duì)象,而利用動(dòng)態(tài)綁定(dynamic Binding)技術(shù)(可以在程序運(yùn)行期間判斷對(duì)象的類型,并根據(jù)其所屬的實(shí)際類型分別調(diào)用其真實(shí)類型的適當(dāng)?shù)姆椒?,此時(shí)方法的調(diào)用與該方法的主體連接在一起(綁定binding),可以在運(yùn)行時(shí)根據(jù)父類對(duì)象或引用變量所指對(duì)象的實(shí)際類型執(zhí)行相應(yīng)的子類中的方法,從而實(shí)現(xiàn)多態(tài)性。


posted on 2011-02-14 20:32 luis 閱讀(664) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

文章分類

文章檔案

友情鏈接

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品一二三视频| 欧美与黑人午夜性猛交久久久| 亚洲精品视频在线观看网站 | 欧美激情免费观看| 你懂的成人av| 亚洲欧洲日本在线| 国产欧美日韩视频一区二区三区 | 久久精品国产一区二区三区免费看| 亚洲欧美精品在线| 久久久成人精品| 亚洲福利小视频| 99re热这里只有精品免费视频| 狂野欧美激情性xxxx欧美| 蜜臀va亚洲va欧美va天堂| 亚洲第一免费播放区| av不卡在线观看| 欧美在线观看视频一区二区三区| 久久野战av| 国产精品福利av| 亚洲国产精品久久久久秋霞蜜臀 | 最新亚洲电影| 亚洲欧美一区二区三区在线| 久久婷婷蜜乳一本欲蜜臀| 欧美日韩人人澡狠狠躁视频| 尤物九九久久国产精品的特点| 日韩一本二本av| 久久亚洲春色中文字幕久久久| 亚洲黄页一区| 欧美在线视频免费播放| 欧美日韩在线播| 亚洲国产毛片完整版| 午夜欧美精品| 亚洲国产另类久久精品| 欧美在线一二三四区| 欧美性事在线| 一个人看的www久久| 麻豆久久精品| 欧美一级理论性理论a| 欧美日韩美女一区二区| 一区福利视频| 欧美在线首页| 亚洲一区日本| 国产精品hd| 亚洲永久在线观看| 日韩视频不卡中文| 欧美日韩国产专区| 亚洲美女尤物影院| 亚洲国产精品999| 欧美~级网站不卡| 亚洲黄色av| 亚洲第一精品福利| 欧美xx69| 日韩写真视频在线观看| 亚洲国产另类精品专区| 欧美aⅴ一区二区三区视频| 在线观看中文字幕不卡| 看片网站欧美日韩| 久久国产一区二区| 一本色道久久综合狠狠躁篇的优点| 久久综合国产精品台湾中文娱乐网| 国产精品对白刺激久久久| 亚洲一区二区三区国产| 亚洲一区二区免费| 国产精品一级久久久| 性欧美xxxx视频在线观看| 亚洲网站在线| 国产日韩一区| 久久久久久久一区二区三区| 午夜伦欧美伦电影理论片| 国产欧美视频在线观看| 久久精品人人做人人爽| 久久九九免费视频| 亚洲全部视频| 一区二区精品在线| 国产欧美精品在线| 免费观看亚洲视频大全| 欧美aaaaaaaa牛牛影院| 亚洲香蕉在线观看| 午夜精品短视频| 狠久久av成人天堂| 欧美黄色免费网站| 欧美日韩小视频| 久久精品二区三区| 欧美激情一区二区三区在线| 亚洲一区欧美一区| 久久精品国亚洲| 亚洲精品一区二区三区四区高清| 亚洲精品影院| 国产一区二区三区四区在线观看| 欧美~级网站不卡| 欧美日韩亚洲一区二区| 久久久91精品国产一区二区三区| 久久久亚洲国产天美传媒修理工 | 国产一区二区剧情av在线| 噜噜噜久久亚洲精品国产品小说| 欧美88av| 久久精品国产亚洲一区二区| 欧美经典一区二区三区| 亚洲欧美国产精品va在线观看| 欧美一区二区视频在线观看| 亚洲乱码视频| 久久精品99| 亚洲免费影院| 久热精品视频在线观看| 亚洲欧美综合精品久久成人| 欧美成黄导航| 久久久久久久尹人综合网亚洲| 欧美日本精品一区二区三区| 免费欧美视频| 亚洲欧洲在线播放| 欧美日韩一区二区三区四区在线观看 | 亚洲欧洲一区二区三区久久| 国产精品视频久久一区| 亚洲第一精品福利| 欧美专区第一页| 亚洲一区二区三区在线视频| 免费人成网站在线观看欧美高清| 亚洲欧美激情精品一区二区| 欧美韩国日本综合| 免费成人高清| 国产综合久久久久久| 亚洲亚洲精品三区日韩精品在线视频| 亚洲国产激情| 久久精品一区二区| 久久精品国产99精品国产亚洲性色| 欧美日韩国产小视频| 欧美激情一区在线观看| 亚洲国产成人av| 久久久精品国产一区二区三区| 欧美一区二区视频网站| 国产精品国产三级国产aⅴ9色| 亚洲精品女人| 亚洲第一区色| 久久综合狠狠综合久久综青草| 欧美在线免费看| 国产欧美综合在线| 午夜精品999| 久久久成人网| 在线播放国产一区中文字幕剧情欧美| 亚洲欧美日韩在线综合| 欧美伊久线香蕉线新在线| 国产精品一二一区| 欧美影院久久久| 久久久五月婷婷| 影音先锋亚洲精品| 麻豆av福利av久久av| 亚洲欧洲精品一区二区三区| 日韩视频在线免费观看| 欧美片在线观看| 亚洲最快最全在线视频| 亚洲欧美一区二区原创| 国产日韩成人精品| 狼人社综合社区| 亚洲日本成人网| 性做久久久久久| 韩国成人福利片在线播放| 噜噜噜91成人网| 日韩网站免费观看| 午夜日韩av| 亚洲国产成人不卡| 欧美日韩中文字幕| 久久成人免费电影| 亚洲国产精品激情在线观看| 亚洲影院色无极综合| 国产一区二区中文| 欧美顶级艳妇交换群宴| 亚洲久久成人| 久久青青草综合| 亚洲麻豆一区| 国产欧美精品国产国产专区| 欧美 日韩 国产 一区| 亚洲一区免费看| 欧美激情第五页| 午夜视频久久久| 亚洲激情自拍| 国产日韩欧美综合| 欧美福利网址| 性亚洲最疯狂xxxx高清| 亚洲国产成人av好男人在线观看| 亚洲男人的天堂在线观看| 黄色日韩精品| 国产精品国产三级国产| 农村妇女精品| 久久精选视频| 午夜视频一区二区| 一本久道久久综合狠狠爱| 亚洲破处大片| 激情综合五月天| 国产精品久久久久av| 欧美77777| 久久九九免费视频| 亚洲一区二区三区免费观看| 亚洲福利在线看| 美女黄毛**国产精品啪啪| 亚洲欧美日韩精品久久久久| 亚洲精品一区二区三区在线观看| 国产亚洲成av人在线观看导航| 欧美日韩中文字幕精品| 欧美激情一区在线| 欧美成人精品|