freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java的個人總結(jié)-資料下載頁

2025-09-07 04:48本頁面
  

【正文】 。 } } 繼 承 (面向?qū)ο筇卣髦?) 好處: 1:提高了代碼的復(fù)用性。 2:讓類與類之間產(chǎn)生了關(guān)系,提供了另一個特征多態(tài)的前提。 父類的由來:其實是由多個類不斷向上抽取共性內(nèi)容而來的。 java中對于繼承, java 只支持單繼承。 java雖然不直接支持多繼承,但是保留了這種多繼承機(jī)制,進(jìn)行改良。 單繼承:一個類只能有一個父類。 多繼承:一個類可以有多個父類。 為什么不支持多繼承呢 ? 因為當(dāng)一個類同時繼承兩個父類時,兩個父類中有相同的功能,那么子類對象調(diào)用該功能時,運行哪一個呢 ?因為父類中的方法中存在方法體。 但是 java支持多重繼承。 A繼承 B B繼承 C C繼承 D。 多重繼承的出現(xiàn),就有了繼承體系。體系中的頂層父類是通過不斷向上抽取而來的。它里面定義的該體系最基本最共性內(nèi)容的功能。 所以,一個體系要想被使用,直接查閱該系統(tǒng)中的父類的功能即可知道該體系的基本用法。那么想要使用一個體系時,需要建立對象。建議建立最子類對象,因為最子類不僅可以使用父類中的功能。還可以使用子類特有 的一些功能。 簡單說:對于一個繼承體系的使用,查閱頂層父類中的內(nèi)容,創(chuàng)建最底層子類的對象。 子父類出現(xiàn)后,類中的成員都有了哪些特點: 1:成員變量。 當(dāng)子父類中出現(xiàn)一樣的屬性時,子類類型的對象,調(diào)用該屬性,值是子類的屬性值。 如果想要調(diào)用父類中的屬性值,需要使用一個關(guān)鍵字: super This:代表是本類類型的對象引用。 Super:代表是子類所屬的父類中的內(nèi)存空間引用。 注意:子父類中通常是不會出現(xiàn)同名成員變量的,因為父類中只要定義了,子類就不用在定義了,直接繼承過來用就可 以了。 2:成員函數(shù)。 當(dāng)子父類中出現(xiàn)了一模一樣的方法時,建立子類對象會運行子類中的方法。好像父類中的方法被覆蓋掉一樣。所以這種情況,是函數(shù)的另一個特性:覆蓋 (復(fù)寫,重寫 ) 什么時候使用覆蓋呢 ?當(dāng)一個類的功能內(nèi)容需要修改時,可以通過覆蓋來實現(xiàn)。 3:構(gòu)造函數(shù)。 發(fā)現(xiàn)子類構(gòu)造函數(shù)運行時,先運行了父類的構(gòu)造函數(shù)。為什么呢 ? 原因:子類的所有構(gòu)造函數(shù)中的第一行,其實都有一條隱身的語句 super()。 super(): 表示父類的構(gòu)造函數(shù),并會調(diào)用于參數(shù)相對應(yīng)的父類中的構(gòu)造函數(shù)。而 super():是在調(diào)用父類中空參數(shù)的構(gòu)造函數(shù)。 為什么子類對象初始化時,都需要調(diào)用父類中的函數(shù) ?(為什么要在子類構(gòu)造函數(shù)的第一行加入這個 super()?) 因為子類繼承父類,會繼承到父類中的數(shù)據(jù),所以必須要看父類是如何對自己的數(shù)據(jù)進(jìn)行初始化的。所以子類在進(jìn)行對象初始化時,先調(diào)用父類的構(gòu)造函數(shù),這就是子類的實例化過程。 注意:子類中所有的構(gòu)造函數(shù)都會默認(rèn)訪問父類中的空參數(shù)的構(gòu)造函數(shù),因為每一個子類構(gòu)造內(nèi)第一行都有默認(rèn)的語句 super()。 如果父類中沒有空參數(shù)的構(gòu)造函數(shù),那么子類的構(gòu)造函數(shù)內(nèi),必須通過 super語句指定要訪問的父類中的構(gòu)造函數(shù)。 如果子類構(gòu)造函數(shù)中用 this來指定調(diào)用子類自己的構(gòu)造函數(shù),那么被調(diào)用的構(gòu)造函數(shù)也一樣會訪問父類中的構(gòu)造函數(shù)。 問題: super()和 this()是否可以同時出現(xiàn)的構(gòu)造函數(shù)中。 兩個語句只能有一個定義在第一行,所以只能出現(xiàn)其中一個。 super()或者 this():為什么一定要定義在第一行 ? 因為 super()或者 this()都是調(diào)用構(gòu)造函數(shù),構(gòu)造函數(shù)用于初始化,所以初始化的動作要先完成。 繼承的細(xì)節(jié): 什么時候使用繼承呢 ? 當(dāng)類與類之間存在著所屬關(guān)系時,才具備了繼承的前提。 a是 b中的一種。 a繼承 b。狼是犬科中的一種。 英文書中,所屬關(guān)系: is a 注意:不要僅僅為了獲取其他類中的已有成員進(jìn)行繼承。 所以判斷所屬關(guān)系,可以簡單看,如果繼承后,被繼承的類中的功能,都可以被該子類所具備,那么繼承成立。如果不是,不可以繼承。 細(xì)節(jié)二: 在方法覆蓋時,注意兩點 : 1:子類覆蓋父類時,必須要保證,子類方法的權(quán)限必須大于等于父類方法權(quán)限可以實現(xiàn)繼承。否則,編譯失敗。 2:覆蓋時,要么都靜態(tài),要么都不靜態(tài)。 (靜態(tài)只能覆蓋靜態(tài),或者被靜態(tài)覆蓋 ) 繼承的一個弊端:打破了封裝性。對于一些類,或者類中功能,是需要被繼承,或者復(fù)寫的。 這時如何解決問題呢 ?介紹一個關(guān)鍵字, final:最終。 final特點: 1:這個關(guān)鍵字是一個修飾符,可以修飾類,方法,變量。 2:被 final修飾的類是一個最終類,不可以被繼承。 3:被 final修飾的方法是一 個最終方法,不可以被覆蓋。 4:被 final修飾的變量是一個常量,只能賦值一次。 其實這樣的原因的就是給一些固定的數(shù)據(jù)起個閱讀性較強(qiáng)的名稱。 不加 final修飾不是也可以使用嗎 ?那么這個值是一個變量,是可以更改的。加了 final,程序更為嚴(yán)謹(jǐn)。常量名稱定義時,有規(guī)范,所有字母都大寫,如果由多個單詞組成,中間用 _ 連接。 抽象類 :abstract 抽象:不具體,看不明白。抽象類表象體現(xiàn)。 在不斷抽取過程中,將共性內(nèi)容中的方法聲明抽取,但是方法不一樣,沒有抽取,這時抽取到的方法,并不具體,需要被指定關(guān)鍵字 abstract所標(biāo)示,聲明為抽象方法。 抽象方法所在類一定要標(biāo)示為抽象類,也就是說該類需要被 abstract關(guān)鍵字所修飾。 抽象類的特點: 1:抽象方法只能定義在抽象類中,抽象類和抽象方法必須由 abstract關(guān)鍵字修飾 (可以描述類和方法,不可以描述變量 )。 2:抽象方法只定義方法聲明,并不定義方法實現(xiàn)。 3:抽象類不可以被創(chuàng)建對象 (實例化 )。 4:只有通過子類繼 承抽象類并覆蓋了抽象類中的所有抽象方法后,該子類才可以實例化。否則,該子類還是一個抽象類。 抽象類的細(xì)節(jié): 1:抽象類中是否有構(gòu)造函數(shù) ?有,用于給子類對象進(jìn)行初始化。 2:抽象類中是否可以定義非抽象方法 ? 可以。其實,抽象類和一般類沒有太大的區(qū)別,都是在描述事物,只不過抽象類在描述事物時,有些功能不具體。所以抽象類和一般類在定義上,都是需要定義屬性和行為的。只不過,比一般類多了一個抽象函數(shù)。而且比一般類少了一個創(chuàng)建對象的部分。 3:抽象關(guān)鍵字 abstract 和哪些不可以共存 ?final , private , static 4:抽象類中可不可以不定義抽象方法 ?可以。抽象方法目的僅僅為了不讓該類創(chuàng)建對象。 模板方法設(shè)計模式: 解決的問題:當(dāng)功能內(nèi)部一部分實現(xiàn)時確定,一部分實現(xiàn)是不確定的。這時可以把不確定的部分暴露出去,讓子類去實現(xiàn)。 abstract class GetTime{ public final void getTime(){ //此功能如果不需要復(fù)寫,可加 final限定 long start = ()。 code()。 //不確定的功能部分,提取出來,通過抽象方法實現(xiàn) long end = ()。 (毫秒是: +(endstart))。 } public abstract void code()。 //抽象不確定的功能,讓子類復(fù)寫實現(xiàn) } class SubDemo extends GetTime{ public void code(){ //子類復(fù)寫功能方法 for(int y=0。 y1000。 y++){ (y)。 } } } java
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1