




已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C#面向?qū)ο蟪绦蛟O(shè)計(jì),主講教師:胡 鵬 飛 個(gè)人郵箱: 教學(xué)郵箱:,2,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1 繼承 5.2 抽象類(lèi)與密封類(lèi) 5.3 多態(tài)性,第5章 C#面向?qū)ο缶幊袒A(chǔ),3,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1 繼承,5.1.1 繼承的定義 5.1.2 覆蓋 5.1.3 .NET Framework中重要的類(lèi) 5.1.4 泛型,4,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1 繼承,繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的主要特征之一,它可以讓您重用代碼,可以節(jié)省程序設(shè)計(jì)的時(shí)間。繼承就是在類(lèi)之間建立一種相交關(guān)系,使得新定義的派生類(lèi)的實(shí)例可以繼承已有的基類(lèi)的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起類(lèi)的新層次。 現(xiàn)實(shí)世界中的許多實(shí)體之間不是相互孤立的,它們往往具有共同的特征也存在內(nèi)在的差別。人們可以采用層次結(jié)構(gòu)來(lái)描述這些實(shí)體之間的相似之處和不同之處。,5,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,6,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1 繼承,對(duì)類(lèi)進(jìn)一步細(xì)化,從而派生為更具體詳細(xì)的類(lèi),派生類(lèi)除自動(dòng)具有基類(lèi)中的所有成員以外,還可以添加自己所特有的屬性和行為,并可根據(jù)需要修改基類(lèi)中個(gè)別行為的具體實(shí)現(xiàn)。 繼承體現(xiàn)了一般/特殊關(guān)系(派生類(lèi)是基類(lèi)的細(xì)化),保證了層次結(jié)構(gòu)的清晰性,且體現(xiàn)了模型/代碼重用的原則,體現(xiàn)了分類(lèi)學(xué)基本方法。 繼承具有級(jí)聯(lián)效應(yīng)。修改基類(lèi)成員會(huì)影響其派生類(lèi)。,7,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1.1 繼承的定義,從一個(gè)基類(lèi)派生一個(gè)子類(lèi)的語(yǔ)法是: 類(lèi)修飾符 class 類(lèi)名:基類(lèi)類(lèi)名 類(lèi)的成員; 需要使用冒號(hào)(:),后跟基類(lèi)的名字。冒號(hào)的意思相當(dāng)于“派生于”。 參看li5-1,P33,8,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1.1 繼承的定義,一個(gè)類(lèi)能夠從基類(lèi)繼承成員。關(guān)于繼承,需要注意以下幾個(gè)重要的方面: 繼承是可傳遞的。如果B派生于A(yíng),并且C派生于B,那么C就繼承了B中聲明的成員,同時(shí)也繼承了A中聲明的成員。 派生類(lèi)能夠擴(kuò)展它的基類(lèi)。派生類(lèi)可以添加同它繼承的成員一樣的新成員,但是這不能去掉一個(gè)繼承的成員的定義。,9,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1.1 繼承的定義,不管它們是否聲明了可訪(fǎng)問(wèn)性,構(gòu)造函數(shù)和析構(gòu)函數(shù)總是不能被繼承。 派生類(lèi)可以通過(guò)用相同的名稱(chēng)和簽名,聲明一個(gè)新的成員方法來(lái)覆蓋繼承的成員。 類(lèi)可以聲明虛擬方法、屬性和索引,并且派生類(lèi)可以覆蓋這些功能成員的執(zhí)行。這使得類(lèi)可以展示多態(tài)性,此行為被功能成員調(diào)用實(shí)現(xiàn),而這個(gè)調(diào)用則要根據(jù)實(shí)例運(yùn)行時(shí)的類(lèi)型,調(diào)用不同的方法成員。,10,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,保護(hù)成員 保護(hù)成員通過(guò)在成員聲明中使用protected修飾符來(lái)定義。為了方便派生類(lèi)的訪(fǎng)問(wèn),但又不希望其他無(wú)關(guān)類(lèi)隨意訪(fǎng)問(wèn),這時(shí)就可以使用protected修飾符,將成員聲明為保護(hù)的。,保護(hù)成員,為什么引入保護(hù)成員這個(gè)概念?,P29,11,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1.2 覆蓋,覆蓋(override) 當(dāng)在子類(lèi)中聲明了與基類(lèi)相同名字的方法,而且,使用了相同的簽名時(shí),就稱(chēng)派生類(lèi)的成員覆蓋了基類(lèi)中的成員。 C#中,基類(lèi)中的功能成員默認(rèn)為不可覆蓋的,除非使用了virtual修飾。派生類(lèi)中若要覆蓋相同簽名的基類(lèi)功能成員,必須使用override修飾且重新定義其實(shí)現(xiàn)。 即使派生類(lèi)覆蓋了基類(lèi)功能成員,仍能使用“base.成員名”來(lái)訪(fǎng)問(wèn)被覆蓋的功能成員。,P33,12,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,示例5-2類(lèi)圖,13,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1.2 覆蓋,覆蓋(override)和重載(overload)。 重載它是指允許存在多個(gè)同名函數(shù),而這些函數(shù)的簽名不同(或許參數(shù)個(gè)數(shù)不同,或許參數(shù)類(lèi)型不同,或許兩者都不同),從而能夠處理方法的參數(shù)不同但操作相同的情況。 覆蓋是指子類(lèi)重新定義基類(lèi)的虛函數(shù),二者具有相同的簽名,它是面向?qū)ο笾卸鄳B(tài)的基礎(chǔ)。 派生類(lèi)中可以同時(shí)對(duì)基類(lèi)中的功能成員進(jìn)行重載和覆蓋。 不能覆蓋類(lèi)的靜態(tài)成員。,14,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,new關(guān)鍵字 我們可以在派生類(lèi)中定義新的成員方法,但如果無(wú)意中恰好定義了一個(gè)和基類(lèi)完全一樣的方法,怎么辦? new關(guān)鍵字用來(lái)在派生類(lèi)中隱藏從基類(lèi)中繼承的單個(gè)成員。 參看例子5-2。,P34,15,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,override和new的區(qū)別?,override 表示重寫(xiě),用于繼承類(lèi)對(duì)基類(lèi)中虛成員的實(shí)現(xiàn)。 new 表示隱藏,聲明類(lèi)的成員,表示隱藏了基類(lèi)中同名的成員 。,16,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,1 Object類(lèi),所有.NET類(lèi)都派生于System.Object類(lèi)。在C#中在定義類(lèi)時(shí)若沒(méi)有指定基類(lèi),編譯器自動(dòng)假設(shè)這個(gè)類(lèi)派生于System.Object類(lèi)。 System.Object類(lèi)就成為C#中所以類(lèi)的根。,5.1.3 .NET Framework中重要的類(lèi),P26,17,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,Object類(lèi)常用方法,1)public virtual string ToString() 返回對(duì)象的字符串表示方式 2)public virtual bool Equals(object obj) 對(duì)對(duì)象的實(shí)例進(jìn)行比較 3)public static bool Equals(object objA, object objB) 對(duì)對(duì)象的實(shí)例進(jìn)行比較 4)public static bool ReferenceEquals(object objA,object objB) 比較兩個(gè)引用是否指向同一對(duì)象 5)public Type GetType() 返回對(duì)象類(lèi)型的詳細(xì)信息,參看Li5-3,18,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,裝箱(boxing)和拆箱(unboxing)是C#類(lèi)型系統(tǒng)中重要的概念。它允許將任何類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為對(duì)象(object),同時(shí)也允許任何類(lèi)型的對(duì)象轉(zhuǎn)換到與之兼容的數(shù)據(jù)類(lèi)型,其實(shí)拆箱是裝箱的逆過(guò)程。 1裝箱轉(zhuǎn)換 裝箱轉(zhuǎn)換是指將一個(gè)值類(lèi)型的數(shù)據(jù)隱式地轉(zhuǎn)換成一個(gè)對(duì)象類(lèi)型(object)的數(shù)據(jù)。把一個(gè)值類(lèi)型裝箱,就是創(chuàng)建一個(gè)object類(lèi)型的實(shí)例,并把該值類(lèi)型的值復(fù)制給該這個(gè)object。 例如:下面的兩條語(yǔ)句就執(zhí)行了裝箱轉(zhuǎn)換: int k=100; object obj=k; 上面的兩條語(yǔ)句中,第1條語(yǔ)句先聲明一個(gè)整型變量k并對(duì)其賦值,第2條語(yǔ)句則先創(chuàng)建一個(gè)object類(lèi)型的實(shí)例obj,然后將k的值復(fù)制給obj。,裝箱和拆箱,19,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,在執(zhí)行裝箱轉(zhuǎn)換時(shí),也可以使用顯式轉(zhuǎn)換,如: int k=100; object obj=(object) k; 例:在程序中執(zhí)行裝箱轉(zhuǎn)換,程序代碼如下: using System; class BoxingDemo static void Main( ) Console.WriteLine(“執(zhí)行裝箱轉(zhuǎn)換:“); int k=200; object obj=k; k=300; Console.WriteLine(“obj=0“,obj); Console.WriteLine(“k=0“, k); 裝箱的作用就是使類(lèi)型統(tǒng)一. 參看li5-4,裝箱和拆箱,20,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,2拆箱轉(zhuǎn)換 是指將一個(gè)對(duì)象類(lèi)型的數(shù)據(jù)顯式地轉(zhuǎn)換成一個(gè)值類(lèi)型數(shù)據(jù)。 拆箱操作包括分為兩步:首先檢查對(duì)象實(shí)例,確保它是給定值類(lèi)型的一個(gè)裝箱值,然后把實(shí)例的值復(fù)制到值類(lèi)型數(shù)據(jù)中。 例如:下面兩條語(yǔ)句就執(zhí)行了拆箱轉(zhuǎn)換: object obj=228; int k=(int)obj; 拆箱轉(zhuǎn)換需要(而且必須)執(zhí)行顯式轉(zhuǎn)換,這是它與裝箱轉(zhuǎn)換的不同之處。,裝箱和拆箱,21,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,例:在程序中使用拆箱轉(zhuǎn)換,程序代碼如下: using System class UnboxingDemo static void Main( ) int k=228; object obj=k; /裝箱轉(zhuǎn)換 int j=(int ) obj; /拆箱轉(zhuǎn)換 Console.WriteLine(“k=0tobj=1tj=2“, k, obj, j); 注意:裝箱與拆箱轉(zhuǎn)換是要損失性能的。,裝箱和拆箱,22,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1.3 .NET Framework中重要的類(lèi),String類(lèi) String類(lèi)是直接從object派生的封裝好的類(lèi)類(lèi)型,字符串類(lèi)的實(shí)例表示統(tǒng)一的字符編碼標(biāo)準(zhǔn)字符串,它的功能非常強(qiáng)大、用途非常廣泛。,23,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,String類(lèi),System.String類(lèi)專(zhuān)門(mén)用于存儲(chǔ)字符串,允許對(duì)字符串進(jìn)行許多操作。由于這種數(shù)據(jù)類(lèi)型非常重要,C#提供了它自己的關(guān)鍵字:string,以便更容易的處理字符串,string關(guān)鍵字是預(yù)定義System.String類(lèi)的簡(jiǎn)化的別名。 String類(lèi)提供了許多方法,可以實(shí)現(xiàn)例如替換字符、刪除空白和把字符變成大寫(xiě)形式等功能。,P65,24,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,String類(lèi)的方法,CompareTo 已重載。將此實(shí)例與指定的對(duì)象進(jìn)行比較。 Concat 已重載。連接 String 的一個(gè)或多個(gè)實(shí)例,或 Object 的一個(gè)或多個(gè)實(shí)例的值的 String 表示形式。 Copy 創(chuàng)建一個(gè)與指定的 String 具有相同值的 String 的新實(shí)例。 CopyTo 將指定數(shù)目的字符從此實(shí)例中的指定位置復(fù)制到 Unicode 字符數(shù)組中的指定位置。,25,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,String類(lèi)的方法,IndexOf 已重載。報(bào)告 String 在此實(shí)例中的第一個(gè)匹配項(xiàng)的索引或一個(gè)或多個(gè)字符的索引。 IndexOfAny 已重載。報(bào)告指定 Unicode 字符數(shù)組中的任意字符在此實(shí)例中第一個(gè)匹配項(xiàng)的索引。 LastIndexOf 已重載。報(bào)告指定的 Unicode 字符或 String 在此實(shí)例中的最后一個(gè)匹配項(xiàng)的索引位置。,26,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,String類(lèi)的方法,Substring 已重載。從此實(shí)例檢索子字符串。 ToLower 已重載。返回此 String 的小寫(xiě)形式的副本。 ToUpper 已重載。返回此 String 的大寫(xiě)形式的副本。 Trim 已重載。從此實(shí)例的開(kāi)始位置和末尾移除一組指定字符的所有匹配項(xiàng)。,27,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,StringBuilder類(lèi),StringBuilder類(lèi)表示可變字符串,功能不如String類(lèi)強(qiáng)大,但StringBuilder類(lèi)通過(guò)分配的內(nèi)存比需要的多,多數(shù)操作在內(nèi)存中進(jìn)行,因此在進(jìn)行替換、添加、插入或刪除字符串中的文本時(shí)效率非常高。 String 對(duì)象是不可改變的。每次使用 System.String 類(lèi)中的方法之一或進(jìn)行運(yùn)算時(shí)(如賦值、拼接等)時(shí),都要在內(nèi)存中創(chuàng)建一個(gè)新的字符串對(duì)象,這就需要為該新對(duì)象分配新的空間。,P75,28,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,StringBuilder類(lèi),而 StringBuilder 則不會(huì)。在需要對(duì)字符串執(zhí)行重復(fù)修改的情況下,與創(chuàng)建新的 String 對(duì)象相關(guān)的系統(tǒng)開(kāi)銷(xiāo)可能會(huì)非常昂貴。如果要修改字符串而不創(chuàng)建新的對(duì)象,則可以使用 System.Text.StringBuilder 類(lèi)。例如,當(dāng)在一個(gè)循環(huán)中將許多字符串連接在一起時(shí),使用 StringBuilder 類(lèi)可以提升性能。,參看li5-6,29,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,3 ArrayList類(lèi) ArrayList類(lèi)與數(shù)組類(lèi)似,但是有如下優(yōu)點(diǎn): 數(shù)組要想改變大小,必須重建一個(gè)數(shù)組,復(fù)制現(xiàn)有元素,然后對(duì)數(shù)組引用進(jìn)行更新。但ArrayList不用,它可以是不定大小的。 如果要從數(shù)組中移除一個(gè)元素,必須創(chuàng)建元素復(fù)本,然后將刪除位置后的所有元素向前移動(dòng)一個(gè)位置。 ArrayList不用,直接調(diào)用它的移除函數(shù)即可。 如果數(shù)組插入時(shí),需要將插入位置后的所有元素都向后移動(dòng),空出空間給新插入的元素。而ArrayList直接調(diào)用它的插入函數(shù)即可。 注意引入 System.Collections命名空間,5.1.3 .NET Framework中重要的類(lèi),P50,30,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,ArrayList類(lèi)的方法,Add 將對(duì)象添加到 ArrayList 的結(jié)尾處。 Insert 將元素插入 ArrayList 的指定索引處。 Remove 從 ArrayList 中移除特定對(duì)象的第一個(gè)匹配項(xiàng)。 RemoveAt 移除 ArrayList 的指定索引處的元素。 IndexOf 返回 ArrayList 或它的一部分中某個(gè)值的第一個(gè)匹配項(xiàng)的從零開(kāi)始的索引。 Sort 對(duì) ArrayList 或它的一部分中的元素進(jìn)行排序。 Clear 從 ArrayList 中移除所有元素。 參看li5-7,31,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,4.Queue類(lèi) Queue類(lèi)表示對(duì)象的先進(jìn)先出集合。 Queue類(lèi)常見(jiàn)操作 Enqueue 將對(duì)象添加到 Queue 的結(jié)尾處。 Dequeue 移除并返回位于 Queue 開(kāi)始處的對(duì)象。 Peek 返回位于 Queue 開(kāi)始處的對(duì)象但不將其移除。 Clear 從 Queue 中移除所有對(duì)象。,5.1.3 .NET Framework中重要的類(lèi),參看li5-8,32,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.Stack類(lèi) Stack類(lèi)表示對(duì)象的先進(jìn)先出集合。 Stack類(lèi)常見(jiàn)操作 Push 將對(duì)象插入 Stack 的頂部。 Pop 移除并返回位于 Stack 頂部的對(duì)象。 Peek 返回位于 Queue 開(kāi)始處的對(duì)象但不將其移除。 Clear 從 Stack 中移除所有對(duì)象。,5.1.3 .NET Framework中重要的類(lèi),參看li5-9,33,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5. Hashtable類(lèi) Hashtable類(lèi)表示鍵/值對(duì)的集合,這些鍵/值對(duì)根據(jù)鍵的哈希代碼進(jìn)行組織。 Hashtable類(lèi)常見(jiàn)操作 Add 將帶有指定鍵和值的元素添加到 Hashtable 中。 Remove 從 Hashtable 中移除帶有指定鍵的元素。 Clear 從 Hashtable 中移除所有對(duì)象。,5.1.3 .NET Framework中重要的類(lèi),參看li5-10,34,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,6. SortedList 類(lèi) SortedList 類(lèi)表示鍵/值對(duì)的集合,這些鍵值對(duì)按鍵排序并可按照鍵和索引訪(fǎng)問(wèn)。 SortedList類(lèi)的重要屬性 Count 獲取包含在 SortedList元素的數(shù)目。 Capacity 獲取或設(shè)置 SortedList 的容量。 Keys 獲取 SortedList 中的鍵。 Values 獲取 SortedList 中的值。,5.1.3 .NET Framework中重要的類(lèi),參看li5-11,35,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,SortedList類(lèi)常見(jiàn)操作 Add 將帶有指定鍵和值的元素添加到 SortedList。 Remove 從 Hashtable 中移除帶有指定鍵的元素。 GetByIndex 獲取 SortedList 的指定索引處的值。 SetByIndex 替換 SortedList 中指定索引處的值。 GetKey 獲取 SortedList 的指定索引處的鍵。 IndexOfKey 返回 SortedList 中指定鍵的從零開(kāi)始的索引。 IndexOfValue 返回指定的值在 SortedList 中第一個(gè)匹配項(xiàng)的從零開(kāi)始的索引。 Clear 從 Hashtable 中移除所有對(duì)象。,5.1.3 .NET Framework中重要的類(lèi),參看li5-11,36,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.1.4 泛型,所謂泛型:即通過(guò)參數(shù)化類(lèi)型來(lái)實(shí)現(xiàn)在同一份代碼上操作多種數(shù)據(jù)類(lèi)型。泛型編程是一種編程范式,它利用“參數(shù)化類(lèi)型”將類(lèi)型抽象化,從而實(shí)現(xiàn)更為靈活的復(fù)用。 C#泛型賦予了代碼更強(qiáng)的類(lèi)型安全,更好的復(fù)用,更高的效率,更清晰的約束。 參看li5-12,37,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,上機(jī)作業(yè),按下面的類(lèi)圖實(shí)現(xiàn)代碼,38,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.2 抽象類(lèi)和密封類(lèi),5.2.1 抽象類(lèi) 5.2.2 密封類(lèi),39,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.2.1 抽象類(lèi):abstract,抽象類(lèi)是基類(lèi)的一種特殊類(lèi)型。除了擁有普通的類(lèi)成員之外,還有抽象類(lèi)成員。抽象類(lèi)成員中的方法和屬性,只有聲明(使用關(guān)鍵字abstract),而沒(méi)有實(shí)現(xiàn)部分。由于對(duì)實(shí)例而言,沒(méi)有實(shí)現(xiàn)的成員是不合法的,所以抽象類(lèi)永遠(yuǎn)也不能實(shí)例化。,P35,40,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.2.1 抽象類(lèi):abstract,這種不能實(shí)例化的類(lèi)也有它的作用空間,它們可以在類(lèi)層次結(jié)構(gòu)的上層,對(duì)于派生于該類(lèi)的其他類(lèi)而言,抽象類(lèi)就確定了子類(lèi)的基本結(jié)構(gòu)和意義,從而使程序框架更容易建立。 抽象類(lèi)不能實(shí)例化。抽象類(lèi)的用途是提供多個(gè)派生類(lèi)可共享的基類(lèi)的公共定義。,41,我學(xué)習(xí)我快樂(lè)!我快樂(lè)我學(xué)習(xí)!,5.2.1 抽象類(lèi),包含一個(gè)或多個(gè)抽象方法的類(lèi)必須聲明為abstract,但是,抽象類(lèi)可以包含非抽象的成員。從抽象類(lèi)派生的類(lèi)必須對(duì)基類(lèi)中包含的所有抽象方法提供
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 掌握紡織品檢測(cè)報(bào)告的標(biāo)準(zhǔn)格式與內(nèi)容試題及答案
- 硫銨考試試題及答案
- 助理廣告師考試市場(chǎng)營(yíng)銷(xiāo)對(duì)社會(huì)責(zé)任的探索與品牌價(jià)值提升策略試題及答案
- 傳統(tǒng)技藝與現(xiàn)代設(shè)計(jì)結(jié)合的可行性研究試題及答案
- 少先隊(duì)的測(cè)試題及答案
- 發(fā)酵工程考試題及答案
- 2024年紡織品證書(shū)考試要點(diǎn)試題及答案
- 化水水處理試題及答案
- 2024年紡織品設(shè)計(jì)師證書(shū)的成功經(jīng)驗(yàn)分享試題及答案
- 對(duì)比分析2024年紡織工程師考試的試題及答案
- 寶潔波士頓矩陣案例分析課件
- 【MOOC】電子技術(shù)應(yīng)用實(shí)驗(yàn)2(數(shù)字電路綜合實(shí)驗(yàn))電子科技大學(xué)章節(jié)作業(yè)中國(guó)大學(xué)慕課答案
- DB45T 2306-2021 百香果無(wú)病毒健康種苗栽培技術(shù)規(guī)程
- 電工電子技術(shù)(第3版) 課件 1.7 基爾霍夫定律
- 2024年度食品飲料品牌授權(quán)區(qū)域代理銷(xiāo)售合同書(shū)3篇
- 關(guān)于清理35KV高壓架空線(xiàn)路樹(shù)障的安全技術(shù)措施
- 人音版音樂(lè)七年級(jí)上冊(cè)《友誼地久天長(zhǎng)》課件
- 人體損傷致殘程度分級(jí)(2017)全文
- 美國(guó)加州租房合同范本(2篇)
- 2025年中考復(fù)習(xí)必背外研版初中英語(yǔ)單詞詞匯(精校打?。?/a>
- 統(tǒng)編版二年級(jí)語(yǔ)文下冊(cè)第7單元大單元公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì) 和配套作業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論