OOP技術:易語言面向?qū)ο髮W習_第1頁
OOP技術:易語言面向?qū)ο髮W習_第2頁
OOP技術:易語言面向?qū)ο髮W習_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、OOP 技術:易語言面向?qū)ο髮W習當前有很多編程語言都是支持面向?qū)ο蟮?,如:DELPHI 、VC+ 、JAVA 等,但大家對于概念性的一些內(nèi)容,取很難去理解、學習, 有的學習者因為概念入不了門,使得放棄了進 一步深入學習?,F(xiàn)在,易語言3. 8版也支持類(Class) 了,因此,本文通過介紹易語言的面向?qū)ο蟮母拍睿?使大家更加容易地學習了解, 再去學習其它語言中的相關知識就不會那么 難了。一枯燥的理論1對象和類要討論“面向?qū)ο蟆?,大家必須首先搞懂什么是 “對象”。面向?qū)ο缶幊陶Z言中的 “對象” 概念和我們?nèi)粘I钪姓f的“對象” 、“東西”或“實體”非常相似(其實編程語言中的“對 象”就是從現(xiàn)實生

2、活中的“對象” 、“實體”的概念發(fā)展而來的) ??梢灾改忝媲暗倪@臺戴爾 電腦或你家樓下的那輛奔馳轎車,也可以指你們公司的銷售員小張。編程語言中的“類”的概念也和現(xiàn)實生活中的“類”非常相似。也是對某一類有共同特 征的“東西” (實體,也許我們應該稱“對象” )的概括。可以看出, “類”是一個抽象的概 念,比如當你提到“電腦”這個概念時,你指的不是你面前的這臺電腦,不是你家隔壁超市 西面出口處用于結(jié)帳的那臺電腦,也不是世界上任何一臺具體的電腦,而是指“電腦” 這個抽象的概念,是“具有處理器、存儲器和輸入、輸出設備的電子設備” 。同樣,“員工”指的 也不是你們公司是小張, 不是我們公司的小王, 也不

3、是世界上任何一家公司的任何一個具體 的工作人員, 而是“服務于某家公司并定期領取薪水的人” 。上面我們所說的 “電腦” 和“員 工”就是兩個“類” ,因為它們分別概括了某一類型的“對象”的基本特征。另外要說明的 一點是:“類”和“所有這類對象的集合”也是不一樣的,因為后一個概念雖然也很全面, 但它指的仍然是一大堆具體的對象,而不是一個抽象的概念。這也許有點像在玩文字游戲, 希望你能適應并喜歡這種游戲規(guī)則, 畢竟做任何事情都是需要 “規(guī)則游戲” 的,面向?qū)ο缶?程也不例外哦。2類的“成員”與“方法”每個類一般有它的屬性, 比如每個員工都有自己的 “姓名”,每到月底都可以領到 “日 工資”乘以 “

4、本月出勤天數(shù)” 算出來的工資。 這里的“姓名” 、“日工資” 和“本月出勤天數(shù)” 就是“員工”這個類的 屬性(或叫“成員” )。而每月工資的計算方法(日工資 * 本月出勤 天數(shù))就的“員工”類的一個 “方法”。在易語言中的類模塊中,一個類看起來就像一個程 序集,類的成員看起來就像一個程序集變量,類的方法看起來就像程序集中的一個子程序。(注意,只是 看起來像 ,它們之間還是有很明顯地區(qū)別的)3 實例化實例化指的是從一個類到這個類的對象(實例) ,就像上面說的從“員工”到你們公司 的小張。一個類并不是一個可操作的實體,它只是一個概念,只有對象才是可操作的, 比如你們公司必須把薪水發(fā)放給具體的人(比

5、如小張) ,而不是發(fā)放到抽象的“員工”或“銷售 員”。在易語言中,生成一個類的實例對象(實例化)就是定義一個以這個類為數(shù)據(jù)類型的 變量。可以在通過點( )來使用這個對象的方法,進而操作這個對象(類似于 調(diào)用“窗口 1移動()”來移動“窗口 1”)。4繼承“電腦”、“員工”這兩個“類”雖然強大,概括了許許多多的“對象”,但是他們畢竟太寬泛了, 有時候我們需要更具體一點的概念。 比如別人問你, 你家的那臺電腦是臺什么樣 的電腦,你就絕對不會回答: “我家的那臺電腦是一臺電腦' ”,而是說出你的電腦的品牌,或具體的配置(比如一臺“戴爾 8530電腦”或“一臺奔騰 3電腦”)。同樣,你會對別人

6、說, 你們公司的小張是一個 “銷售員”。前面提到的“戴爾8530電腦”和“銷售員”同樣都是類, 但是他們分別比“電腦”、“員工”這兩個個類更加具體。這里你從“電腦”到“戴爾8530電腦”和從“員工”至U “銷售員”用的就是“繼承”,因為前面的每兩對概念中的后一個都具備了前一個的所有特征(比如“銷售員”肯定服務于某家公司并定期領取薪水),但是有都比前一個具有更多或更具體的特征(比如銷售員有具體的工作:負責銷售,“銷售員”的薪水可能比普通的員工要高一些)沒錯,編程語言中的繼承就是這樣的??偟恼f來,“繼承”指的是從一個相對比較寬泛的類到一個相對具體一點的類。在一個繼承關系中相對較寬泛的類被稱做后一個

7、類的“基類”,相對較具體的類被稱做前一個類的“派生類”。當然,從這個相對較具體的類還可能會得出更加具體一點的類,這又是一個繼承關系,這時,這個“相對較具體的類”又成為了“更加具體一點的類”的基類,后一個就是前一個的“派生類”,這樣的“具體化”還可能無限繼續(xù)下去。但是“繼承”絕對不能具體化到某個具體的“實體” 也就是對象(比如從銷售員“具體化”到你們公司的銷售員小張),因為繼承只能發(fā)生在兩個“類”之間,一旦從類具體化到了對象那就不叫“繼承”了,就成了“實例化”。二.牛刀小試1.定義一個類,生成實例對象有了理論基礎,我們來牛刀小試一把!就以公司的員工為例子吧,打開易語言3.8新建一個窗口程序,插入

8、一個“類模塊”輸入如下代碼:基類備注員工利有成員名類型數(shù)組備注姓名*“員工”類前一個成員方法名取姓名立玉型員工"類的一個方法返回值類型公開備注丁類的另置姓名V噸類型參考可空備拄員工姓名立本型q犯果煽工姓名*); 城備注:栓驗參數(shù)含法性個方袪:姓名=員工姓名:竦備注:名河就昱逵類的私有成員-i訂返回(X):“針握回(假)本程序定義了一個類“員工”,這個類說明了所有公司員工的共同特性一一都有一個姓名(當然,員工的共同屬性肯定不止這些,這里為了簡單,僅僅考慮“姓名”)并給它定義了一個文本型成員“姓名”同時提供了兩個公開方法用于操作這個成員。其中“取姓名”方法只是簡單地返回該類的唯一成員“姓

9、名”;“置姓名”方法用于給“姓名”成員賦值。為了 確保“姓名”成員包含合法的姓名信息,程序在“置姓名”方法里加了參數(shù)合法性檢查。有了一個類,下面我們來進行“實例化”即從“員工”這個抽象的概念具體化到一個公 司的員工張三。然后在啟動窗口上放置一個按鈕,并輸入如下代碼:子程序名返回值類型發(fā)開乖注單擊類型靜態(tài)數(shù)組備注張三員工張三就是員工類的一個射彖確三.置姓名“張三”)塔備崔:調(diào)用羽象的方擺信尾框咪三取姓名0 Q.) 茨備注;調(diào)用對恿的方注這里的程序定義了一個“員工”類型的變量“張三”,也就從“員工”類 實例化了一個對象“張三”。由于“張三”是“員工”類的對象,所以他就具有了這個類的所有成員和方 法

10、,然后我們就可以調(diào)用張三這個對象的兩個公開方法對它進行操作了。易語言中所有的類成員均為私有成員,所以我們無法直接通過對象給它的成員賦值,只能通過調(diào)用公開方法(張三置姓名(“張三”)設置員工的姓名,而我們在“員工”的“置姓名()”方法中加了參數(shù)合法性檢查,所以實現(xiàn)了對類成員的保護。(其實這個保護是不完整的,如果沒有調(diào)用 |張三置姓名(“張三”),這個員工還是沒有姓名的,即用“張三取姓名()”方法取得的為空文本,下面在講“ _初始化”方法時將解決這個問題。)這里順便說一下類方法的訪問限制。一個類的方法可設置為“公開”或“受保護”,如果一個類的某個方法被“公開”就意味這這個方法可以被該類的其他方法、

11、該類的實例對象和它的派生類訪問(即調(diào)用);否則,這個方法就是“受保護”方法,受保護方法只能被該 類的其他方法和它的派生類訪問而不能通過該類的實例對象來訪問。比如上面的“張三置姓名(“張三”)”就是通過對象直接訪問類的公有方法。你可以試著把“員工”類的“取姓 名()”公開欄的勾號去掉把它變成一個受保護方法,再運行該程序,易語言編譯器就會 報錯:“錯誤(10123):指定方法“取姓名”未被公開,不能在外部被調(diào)用。”看來我們的易語 言還是很聰明的哦。關于類方法在繼承中的訪問限制,我們將在最后面具體討論。注意:易語言中沒有類的公有(公開)成員,它的所有成員均為私有,所以,一個類 的所有成員都只能在類的

12、內(nèi)部使用,而不能通過“對象名成員名=值”的方式來直接訪問類的成員。所以,如果你想把一個類的某個成員公開給外部使用,就必須給這個類添加相 應的方法來取和置這個成員的值。2“ _初始化”與銷毀”在上面的“員工”類的代碼中,還有兩個方法我沒有提到,那就是這節(jié)的標題提到的那兩個方法。仔細研究一下,你會發(fā)現(xiàn)這兩個方法非常特別。第一:方法名都是以下劃線開頭;第二:它們都是“受保護”的;第三:它們都沒有返回值和參數(shù);第四:這兩個方法是 在我們插入一個類模塊時自動生成的。形式的特殊決定了它們功能的特殊。這兩個方法是“私有”的,即未公開的,也就是說它們只能在類內(nèi)部使用。在什么時候使用呢?我們做個實驗,在這兩個方

13、法中輸入如下代碼:方法名遞回值糞加公開備注初始化當基于本類的對象被創(chuàng)建后此方法會按自理用輸岀調(diào)試立不 嚴彊工類 初貽化*)方法名返回值類型益開備注當基于本類的對漿謝證前,憂方法會戡自動調(diào)用輸出調(diào)試文本("員工類銷毀”)更改“ 一按鈕1_被單擊”子程序如下:子程序名返回值董型公開備注歩凱檢單擊奕型欝態(tài)數(shù)組備注員工張三就曇員工発的一牛極輜出調(diào)謚立本 嚴號三置姓屯(嚴)張三.置姓名廣張三遷備注:調(diào)用對象的方法輸岀調(diào)試文本【“張三.取姓名CT )蓿忌框眾三取姓名0 )憑備注:調(diào)甲對象的方法輸出凋試文本子程序0榕結(jié)束E)然后運行調(diào)試運行這個程序,我們發(fā)現(xiàn)易語言是這樣輸出的:在彈出信息框之前:*

14、員工類初始化*張三置姓名()*張三取姓名()彈出信息框之后:*子程序即將結(jié)束*員工類銷毀我們可以發(fā)現(xiàn),“_初始化”是在“員工”類生成對象“張三”時被調(diào)用,“ _銷毀”是在該對象超出作用域,將被銷毀時調(diào)用。由于“張三“對象是一個局部變量,所以它的作用域(生存周期)和它所在的子程序是一樣的,于是,在進入這個子程序后,執(zhí)行第一行代碼之前,“張三”就被創(chuàng)建,“ _初始化”方法被自動調(diào)用;在這個子程序最后一行代碼執(zhí)行完畢 即將退出時“張三”就被銷毀,“銷毀”方法被自動調(diào)用。你也可以用類似的代碼驗證一下 對象作為程序集變量和全局變量使時的情況。另外,每生成該類的一個實例對象,該類的初始化”就被調(diào)用一次,每

15、銷毀一個對象,該類的“_銷毀”方法就被調(diào)用一次(有點像窗口的“創(chuàng)建完畢”和“銷毀”事件)。你可以多招幾名員工(生成“員工”類的多個實例,即定義多個“員工”類型的變量)驗證一下哦。這兩個方法的這種特性在編寫程序時可以給我們很大的幫助,讓我們有機會在一個對象被創(chuàng)建時做一些初始化工作(比如打開一個文件,初始化類的私有成員),在這個對象被銷毀時,做一些善后工作(比如關閉打開的文件) 。根據(jù)這種特性,我們可以改進以上的代碼,實現(xiàn)對“姓名”成員的初始化: 更改“員工”類的“ _初始化”方法代碼如下:方法名返回值姿型公幵備注初始化當基于本類的對彖披創(chuàng)建肓I此方法會被自動調(diào)用姓名=“耒命塔”這樣,就算沒有調(diào)用

16、1員工變量置姓名(“張三”),這個員工也會有一個名字(“未命 名”)了,因為在這個員工被創(chuàng)建時,“員工”類的“ _初始化”方法被自動調(diào)用了。人嘛,怎么能沒有名字呢。注意:不要更改“ _初始化”和“ _銷毀”方法的方法名、參數(shù)、返回值和訪問限制(即 是否“公開”),否則易語言就會把它們當作普通的成員方法或報編譯錯誤。三一個更豐富的“員工”類為了更好地繼續(xù)我們的討論,首先我們應該把上一篇中的“員工”類豐富一下。這次除了可以設置和取出每個員工的姓名外,還要實現(xiàn)一個功能:計算月工資。為了簡單其間,我 們假定月工資計算公式如下:“月工資 =日工資X 本月出勤天數(shù)”。下面看看這在易語言中如何實現(xiàn)。打開上次

17、的那個例程中的“員工”類模塊,添加兩個成員:基類備注員工私肴成員名類型數(shù)蛆備注w型1金月岀勤天徽整數(shù)型、!.Vp工費整數(shù)型J1為了能存取這兩個私有成員,我們添加如下四個方法:方法名返回值糞型舍開備r£颶出勒天數(shù)螯數(shù)型¥甜返回體月岀動黃數(shù))方任名返回值羹型公開這出觀天數(shù)送輯型*參數(shù)容類型可空警注天數(shù),口如果真伍數(shù) 30)! 誦備注;檢臉參數(shù)臺法性口為了簡值耳見,毎亍月均檢30天計算) ;本月出勒天數(shù)二去數(shù)j 計返回(X)蓋t 3£1司假)返回值類型公幵毒注恥日工資整數(shù)型7R 返回日工資方法客返回值嬰型備注胃日工資建皋個杠赍保護”的方法類型口辰數(shù)組備在工赍-口如果具:

18、資、0)日工資=工費注意:我這里把“置日工資”方法設置為“受保護”(即沒有公開),這樣當一個員工對象被創(chuàng)建出來后,就無法在外部對該員工的“日工資”進行修改了,比如“張三置日工資(50)”是編譯不成功的。這樣才能保證公平性,每個員工的日工資都的一樣的,你想多掙 錢,就要努力出滿勤(或成為一個銷售員,下面將繼承時,我們會發(fā)現(xiàn),銷售員的月工資還 包括提成)。更改“ _初始化”方法如下:方法名返回值英型公開初始化當墓于本軸劉象被創(chuàng)建后此方法盤檯自硼用姓名=朋耒誥名即 置日工費W在初始化時(每個員工對象被創(chuàng)建時)調(diào)用該類的“受保護”方法“置日工資”設置其 日工資為30元。注意,雖然這個方法沒有公開,我們

19、還是可以在這里調(diào)用,是因為在易語 言中,非公開的方法都是 “受保護”的,是可以在類內(nèi)部被其他方法 (這里是被“_初始化”) 調(diào)用的。(參看本篇開頭)然后,我們的主角出場了,計算月工資:方滋若趣回值類型公開備注計理月工資整數(shù)型74返回洋月出黠天毅天日工®這個方法很簡單,就是根據(jù)月工資計算公式計算出員工該月應得的工資并返回。這個類的使用也很簡單,比如公司新招聘了兩名員工“張三”和“李四”子程序若返回佰類型備注圣出勤天數(shù)擰鈕被單擊類型靜態(tài)數(shù)組備拄員工李四員張三置姓名“鑾三、李四置姓名(“李E3")到該發(fā)工資時,張三置岀勤天數(shù)C2S)李四置岀勤天甄GS)然后分別計算二人本月應得的工

20、資:信息植嚓三取姓名)+ "本月的工資宵:”+到立本醴三一計算月工 0)f 0;)信息框 偉四取姓名0 + '嗥月的工責左:“ *到文豐 陣四”計算月工資 .口)張三和李四中的任何一個都不能用過“置日工資”方法來更改自己的日工資,因為它是一個“受保護”的方法。四再說繼承上面我們提到,員工不能通過改變自己的日工資來提高收入,但是可以自己成為一個“銷售員”。我們假定銷售員的工資計算方式為“工資=日工資 X出勤天數(shù) +銷售額 X0.2”??梢钥闯?,銷售員也是員工,他除了具有所有員工都具有的姓名,出勤天數(shù),日工資 外,還多了一個“銷售額”屬性,并且工資計算方式也不一樣了。如果我們從頭

21、寫一個“銷 售員”類的話,我們得把上面“員工”類中除了“計算月工資”以外的代碼復制一份到銷售 員類里,然后加上“銷售額”成員,和相應的存取方法,并編寫新的“計算月工資”方法。你有沒有發(fā)現(xiàn)這樣做我們的新類中有寫東西和以前的“員工”類有重復呢?這種重復除了無謂的浪費外還造成代碼的維護困難。面向?qū)ο笳且鉀Q這個問題的。看看下面這個“銷售員”類是任何寫的:現(xiàn)在新插入一個類模塊:r 盤£'-基類備注梢售員員工私有成員名備注方區(qū)若返回值裘型公開備注置銷售領選輯型7英型口空數(shù)組備注員工誚售額整數(shù)型q如果真 園工銷售跟 口) !梢售顫二員工梢售霰 ;半距回血2寸返回鰻)方法名返回值類型公開

22、備注計算月工賞整數(shù)型7甜握回取岀對天數(shù)0 x取日工費0 *銷售鋼X 0.2) 沁芷:掏了簡單我們在逮里把陰馳工融整斟遁回我們的“銷售員”類繼承十自“員工”類,所以它擁有了“員工”類的一切。雖然我們 的“銷售員”類沒有“取姓名”、“置姓名”等方法,但是如果你實例化了一個“銷售員”類 型的對象(變量)“銷售員1”,你同樣可以使用“銷售員1置命名()”和“銷售員1.取姓名()”。這兩個方法從何而來呢?答案只有一個:從“員工”類繼承來的。這就是繼承 的好處,我們不用重復編寫“銷售員”類的“取姓名”“置姓名”等在“員工”里已經(jīng)寫好的方法了?!颁N售員”除了繼承了它父親“員工”的“遺產(chǎn)”外,也有自己獨有的成

23、員“銷售額” 和獨有的“置銷售額()”方法。如果只是繼承遺產(chǎn)而沒有創(chuàng)新,這繼承還有什么意思呢? 下面我們集中看銷售員的“計算月工資”方法。首先它調(diào)用了 “取出勤天數(shù)()”和“取日工資()”這是“遺產(chǎn)”然后有和銷售額做了運算(這是創(chuàng)新)返回。問題是,它既然繼承 自員工,并且繼承了員工的一切東西,那么它是不是也繼承了員工的“計算月工資()”方法呢?答案是“ Yes”。第二個問題,那它既然繼承了員工的“計算月工資()”,它又有自己的“計算月工資()”,那它是不是有兩個“計算月工資()”方法呢?答案是“ No!”。銷售員既然重寫了“計算工資()”方法,那么通過銷售員對象調(diào)用的“計算工資()”實際上執(zhí)行

24、的是銷售員自己的“計算月工資()”。也就是說:如果派生類重寫了基類的某個同名方法,那么在這個派生類中,從基類繼承來的那個方法就被“覆蓋”掉了。看下面的例子:返同值類型處開薔注主出勤天數(shù)扭鈕-被單擊張三.置地奢廣張三”) 李Hlgft名季H") O就三,置出勤天數(shù)聞 李四.置出歎天數(shù)因) 李叫置銷售毓洌O信息框鉄三裁姓竊0 -“本月的工資宵1 * SK本越三計篡月工資0)> 0,)信息樞漳四裁姓空0 * “本戸的工賀K: " + 51TX 嗪四計算月工0).山】這次李四如愿以償, 成了銷售員,雖然他的出勤天數(shù)和張三是一樣的,但是他又調(diào)用了自己的“計算月工資()”于是,收

25、入的差距就產(chǎn)生了。五. 類的多態(tài)性類的多態(tài)性表示:可以將一個繼承類對象賦予到其基類數(shù)據(jù)類型變量中,此時對此基 類對象變量進行操作,將反映出繼承類對象的特性。本篇文章中的程序與前兩篇有很大的改動,為了解釋清楚類的多態(tài)性,現(xiàn)在在“員工” 基類中增加一個空的“置銷售額”的方法,結(jié)構(gòu)要一致。如下所示:方注若返回值董型公開備注置銷售鞭邏糧型¥參數(shù)名參考可空數(shù)蛆備注員工稍售餵整轉(zhuǎn)型it遞回假)再新增加一個新的名為“技術員”的類,其基類為“員工”類。如下所示:類名基葵備注技術員員工方法名遞回值糞型冬開備注初貽化當基于#類的對彖被創(chuàng)連后”此方法會被自勖調(diào)用方祛容返冋值類型公開備注-銷毀當基于本類的對

26、象硝鏘前,此方法合被自動調(diào)用然后回到窗口程序集 1中,添加一個“員工”類型的程序集變量“職工”,程序內(nèi)容全部更改為以下所示:廚口程序集名俁留備注窗口程序集1變塑名r類型備注職工員工予程序名返回値類型備注-置出勧天數(shù)按鈕 被單擊變1名類型數(shù)組晉邇員工技術員銷音人員聃工=晉通扇工職工.置姓若(“張三"職工冒出勁天數(shù)3借卓眶職工取姓名0 + “本月的工貴為:” +到左本工計宦月工費ox X )0聘工=銷售人虎BtL宣姓名“李四I膽工.養(yǎng)出勒天數(shù)(263職工.量銷雷諏(500)信息握 似工一取姓名0 + *(本月的工資為2 +到文本 職工計算月工資0 4 )大家可以看出,本程序中將 繼承類對

27、象“技術員”和“銷售員”分別賦給 基類對象“職 工”這樣,“職工”就有了繼承類對象的特性,在對銷售人員的操作時,“職工”的方法操作就等同于對銷售員繼承類對象的操作。大家也可以看出:基類“員工”有一個“置銷售額” 方法,而繼承類“銷售員”里也有一個“置銷售額”方法,但當調(diào)用基類的“置銷售額”方 法時,卻因為事先已被賦予了繼承類的對象,因此實際調(diào)用的是繼承類的方法。下面如果職工類型太多, 也可以用數(shù)組循環(huán)的方法一次計算出來。下面是使用數(shù)組的例程序,可以看到也是將繼承類對象分別賦給基類對象,調(diào)用時使用數(shù)組操作分別調(diào)用基類C在此,只是簡單地使用數(shù)組說明,而沒有使用循環(huán)。實際上使用數(shù)組更能體現(xiàn)“類的多態(tài)

28、性”的優(yōu)越性,因為如果繼承類很多的話,只需使 用一個循環(huán)就可以實現(xiàn)所有操作,非常方便。窗口握序集若傑留窗口程序雋】孌量主製型備注職工易工0子程序名返回值類空備注置岀勤天數(shù)按鈕按單擊類型靜態(tài)數(shù)組備拄普通員工扌支術易梢售人員加入成損 厠工,晉逍員工)期入成昂醐工請售A員)O職工L張三")職工置出勒天數(shù)加)信息框 工】.取姓名0 * '萍月的工費対+到文本 昭工1計算月工資 m 必)O職工 置姓名(“李四")職工置岀勤天數(shù)C23)職工【"置誚售頤STO信息悔鯛工取姓名0 + '早月的工貴対:” *到文本駅工EJ計算月工費0), 1 )六. 虛擬方法實際上

29、通過上述例程就可以了解什么是虛擬方法了。我為大家分析一下程序面板中類的定義,可以看到,基類“員工”中有一個“置銷售額”方法,繼承類“銷售員”中也有一個“置銷售額”方法,當子類變量賦值給父類變量后,可 以達到覆蓋基類方法的目的。當然也可以定義一個抽象虛方法(純虛函數(shù)),即一個空方法,只提供方法的框架而不編寫任何代碼,實現(xiàn)的過程完全通過子類的覆蓋來實現(xiàn)。虛擬方法,又稱為虛函數(shù),是一種虛擬出的方法,其他編程語言中通過“virtual ”關鍵字來定義虛函數(shù)。overload)。虛擬方法就是允許被子類重新定義父類的方法,這就是常說的函數(shù)的覆蓋(帽程序數(shù)培基本上面向?qū)ο笫悄7铝巳祟惖恼J知世界,在編寫一個大型而實用的程序時,使用對向?qū)ο蟮膭?chuàng)作手法要比傳統(tǒng)的編程手法有效。如果程序

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論