.NET基礎(chǔ)第十二天


一、絕對(duì)路徑和相對(duì)路徑
????????1) 絕對(duì)路徑:通過(guò)給定的路徑能直接在我的電腦中找到這個(gè)文件
????????2) 相對(duì)路徑:文件相對(duì)于應(yīng)用程序的路徑。
????????我們?cè)陂_(kāi)發(fā)中應(yīng)該盡可能使用相對(duì)路徑
二、裝箱和拆箱
????????1) 裝箱:就是將值類(lèi)型轉(zhuǎn)換為引用類(lèi)型
????????2) 拆箱:將引用類(lèi)型轉(zhuǎn)換為值類(lèi)型
????????看兩種類(lèi)型是否發(fā)生了裝箱或拆箱操作,要看,這兩種類(lèi)型是否存在繼承關(guān)系。
三、using關(guān)鍵字
????????將創(chuàng)建文件流對(duì)象的過(guò)程寫(xiě)在using當(dāng)中,會(huì)自動(dòng)的幫助我們釋放流所占用的資源
????***香草的補(bǔ)充:實(shí)際上能使用using自動(dòng)釋放資源,是因?yàn)槟銓?xiě)的這個(gè)類(lèi)繼承了IDisposable接口,using會(huì)自動(dòng)幫我們調(diào)用我們實(shí)現(xiàn)了的Dispose()方法
四、實(shí)現(xiàn)多態(tài)的手段
????????1) 虛方法
????????????????將父類(lèi)的方法標(biāo)記為虛方法,使用關(guān)鍵字virtual,這個(gè)函數(shù)可以重新被子類(lèi)重新寫(xiě)一遍
????????2) 抽象類(lèi)
????????????????當(dāng)父類(lèi)中的方法不知道如何去實(shí)現(xiàn)的時(shí)候,可以考慮將父類(lèi)寫(xiě)成抽象類(lèi),將方法寫(xiě)成抽象方法
????????3)接口(后面會(huì)學(xué))
五、抽象類(lèi)的特點(diǎn)
????????1) 抽象成員必須標(biāo)記為abstract,并且不能有任何實(shí)現(xiàn)
????????2) 抽象成員必須在抽象類(lèi)中
????????3) 抽象類(lèi)不能實(shí)例化
????????4) 子類(lèi)繼承抽象類(lèi)后,必須把父類(lèi)中所有的抽象成員都重寫(xiě)(除非子類(lèi)也是一個(gè)抽象類(lèi),則可以不重寫(xiě))
????????5) 抽象成員的訪問(wèn)修飾符不能是private
????????6) 在抽象類(lèi)中可以包含實(shí)例成員,并且抽象類(lèi)的實(shí)例成員可以不被子類(lèi)實(shí)現(xiàn)
????????7) 抽象類(lèi)是有構(gòu)造函數(shù)的,雖然不能被實(shí)例化
????????8) 如果父類(lèi)中的抽象方法有參數(shù),那么,繼承這個(gè)父類(lèi)的子類(lèi)在重寫(xiě)父類(lèi)的方法時(shí)必須傳入對(duì)應(yīng)的參數(shù)
????????9) 如果抽象父類(lèi)的抽象方法中有返回值,那么子類(lèi)在重寫(xiě)這個(gè)抽象方法時(shí),也必須要傳入返回值
????????10) 如果父類(lèi)中的方法有默認(rèn)的實(shí)現(xiàn),并且父類(lèi)需要被實(shí)例化,這時(shí)可以考慮將父類(lèi)定義成一個(gè)普通類(lèi),用虛方法來(lái)實(shí)現(xiàn)多態(tài)
????????11) 如果父類(lèi)中的方法沒(méi)有默認(rèn)實(shí)現(xiàn),父類(lèi)也不需要被實(shí)例化,則可以將該類(lèi)定義為抽象類(lèi)
