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

正文內(nèi)容

第8章接口、繼承和多態(tài)-資料下載頁(yè)

2024-10-11 22:13本頁(yè)面

【導(dǎo)讀】掌握使用super關(guān)鍵字。繼承是指一個(gè)類(lèi)的定義可以基于另外一個(gè)已。Java中只允許每個(gè)子類(lèi)擁有一個(gè)直接父類(lèi),extends來(lái)顯式的指明其父類(lèi)。其基本的語(yǔ)法格式如下:。創(chuàng)建Pigeon類(lèi),它繼承了Bird類(lèi)。構(gòu)造方法中,對(duì)繼承的color變量賦值。子類(lèi)可以聲明與父類(lèi)具有相同簽名的成員。重寫(xiě)是指父子類(lèi)之間的關(guān)系,當(dāng)子類(lèi)繼承父。類(lèi)中表現(xiàn)出不同的行為。利用super調(diào)用父類(lèi)構(gòu)造方法的語(yǔ)句必須作。構(gòu)造方法,則會(huì)出現(xiàn)編譯錯(cuò)誤。super關(guān)鍵字主要有以下兩種用途。

  

【正文】 ?與抽象類(lèi)一樣都是定義多個(gè)類(lèi)的共同屬性 ?使抽象概念更深入了一層,是一個(gè)“純”抽象類(lèi),它只提供一種形式,并不提供實(shí)現(xiàn) ?允許創(chuàng)建者規(guī)定方法的基本形式:方法名、參數(shù)列表以及返回類(lèi)型,但 不規(guī)定方法主體 ?也 可以包含基本數(shù)據(jù)類(lèi)型的數(shù)據(jù)成員,但它們都默認(rèn)為 static和 final 接口的定義 【 例 81】 創(chuàng)建接口 public interface ICircle { double PI = 。 double getCircumference(double radius)。 double getArea(double radius)。 double getVolume(double radius)。 } 接口的實(shí)現(xiàn) ? 因?yàn)榻涌谥械膶傩远际浅A?,接口中的方法都是沒(méi)有方法體的抽象方法。 ? 接口定義的僅僅是實(shí)現(xiàn)某一特定功能的一組功能的 對(duì)外接口和規(guī)范 ,而并沒(méi)有真正實(shí)現(xiàn)這個(gè)功能,這個(gè)功能的真正實(shí)現(xiàn)是在“繼承”這個(gè)接口的各個(gè)類(lèi)中完成的,要由這些類(lèi)來(lái)具體定義接口中各抽象方法的方法體。 接口的實(shí)現(xiàn) ? 接口的應(yīng)用: ?規(guī)定某些類(lèi)應(yīng)該實(shí)現(xiàn)的方法調(diào)用接口。 ?通過(guò)定義一個(gè)能實(shí)現(xiàn)多個(gè)接口的類(lèi),模擬類(lèi)的多重繼承。 ? 接口在定義后,就可以在類(lèi)中實(shí)現(xiàn)該接口 。 接口的實(shí)現(xiàn) ? 在類(lèi)中實(shí)現(xiàn)接口可以使用關(guān)鍵字 implements ? 基本語(yǔ)法格式如下所示: [修飾符 ] class 類(lèi)名 [extends 父類(lèi)名 ] [implements 接口列表 ] { } ? 在非抽象類(lèi)中實(shí)現(xiàn)接口時(shí), 方法名、返回值類(lèi)型、參數(shù)的個(gè)數(shù)及類(lèi)型必須與接口中的完全一致,并且必須實(shí)現(xiàn)接口中的所有方法 。 接口的實(shí)現(xiàn) ? 【 例 82】 創(chuàng)建類(lèi)實(shí)現(xiàn)接口 public class Circle implements ICircle { @Override public double getCircumference(double radius){ return 2 * PI * radius。 } @Override public double getArea(double radius) { return PI * radius * radius。 } @Override public double getVolume(double radius) { return 4 * PI * radius * radius * radius / 。 } } instanceof判斷對(duì)象類(lèi)型 ? 當(dāng)在程序中執(zhí)行向下轉(zhuǎn)型操作時(shí),如果父類(lèi)對(duì)象不是子類(lèi)對(duì)象的實(shí)例,就會(huì)發(fā)生ClassCastException異常 , ? 所以在執(zhí)行向下轉(zhuǎn)型之前應(yīng)使用 instanceof操作符來(lái)判斷父類(lèi)對(duì)象是否為子類(lèi)對(duì)象的實(shí)例。 ? instanceof操作符可以用來(lái)判斷一個(gè)類(lèi)是否實(shí)現(xiàn)了某個(gè)接口,也可以用來(lái)判斷一個(gè)實(shí)例對(duì)象是否屬于一個(gè)類(lèi)。 instanceof判斷對(duì)象類(lèi)型 ? instanceof的語(yǔ)法格式如下: myobject instanceof ExampleClass ? myobject:某類(lèi)的對(duì)象引用。 ? ExampleClass:某個(gè)類(lèi) 。 ? 使用 instanceof操作符的表達(dá)式返回值為布爾值。如果使用 instanceof操作符的表達(dá)式返回值為true,說(shuō)明 myobject對(duì)象為 ExampleClass的實(shí)例對(duì)象,如果返回值為 false,說(shuō)明 myobject對(duì)象不是 ExampleClass的實(shí)例對(duì)象。 父類(lèi)對(duì)象 子類(lèi)名 class Quadrangle { public static void draw(Quadrangle q) { // SomeSentence } } class Square extends Quadrangle { // SomeSentence } class Anything { // SomeSentence } public class Parallelogram extends Quadrangle { public static void main(String args[]) { Quadrangle q = new Quadrangle()。 if (q instanceof Parallelogram) { Parallelogram p=(Parallelogram)q。 } if (q instanceof Square) { Square s = (Square) q。 } // 由于 q對(duì)象不為 Anything類(lèi)的對(duì)象,所以這條語(yǔ)句是錯(cuò)誤的 // (q instanceof Anything)。 }} 知識(shí)點(diǎn)提煉 ? 1) Java中使用 interface關(guān)鍵字來(lái)定義接口,在接口中可以包含常量和方法。 ? 2)使用 extends關(guān)鍵字可以繼承類(lèi),使用implement關(guān)鍵字可以實(shí)現(xiàn)接口。 ? 3) Java中的類(lèi)可以繼承一個(gè)類(lèi),可以實(shí)現(xiàn)多個(gè)接口。 ? 4)通過(guò)繼承,可以讓子類(lèi)獲得父類(lèi)中定義的非私有成員變量和方法。 ? 5)對(duì)于繼承的方法,可以在子類(lèi)中進(jìn)行重寫(xiě) 知識(shí)點(diǎn)提煉 ? 6)在重寫(xiě)方法時(shí),要保證方法名稱(chēng)和參數(shù)與父類(lèi)完全相同,并且訪問(wèn)權(quán)限不能減小。 ? 7)使用 super關(guān)鍵字可以調(diào)用父類(lèi)中定義的構(gòu)造方法。 ? 8)即使子類(lèi)隱藏了父類(lèi)中定義的成員變量和成員方法,還可以使用 super關(guān)鍵字調(diào)用。 ? 9)使用 Override注解可以減少重寫(xiě)方法時(shí)出現(xiàn)的錯(cuò)誤。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1