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

正文內(nèi)容

java面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο笈c異常ppt(編輯修改稿)

2025-02-15 08:12 本頁面
 

【文章內(nèi)容簡介】 蓋 方法名稱相同,參數(shù)名稱不同:重載 方法名稱相同,參數(shù)名稱相同,返回類型不同:編譯不能通過 class Parent { public int getScore() { return 3。 } public String getCountryName() { return “China”。 } } 覆蓋例 1 class Son extends Parent { public int getScore(){ return 4。 } } public class RunSon{ public static void main(String args[]){ Son s = new Son()。 (())。 (())。 } } 輸出結(jié)果: 4 China ? 子類的訪問修飾符權(quán)限 應(yīng)等于或大于 父類 ? static方法 不能覆蓋非靜態(tài)方法,也不能被非 static方法覆蓋,但是 static方法可以覆蓋 static方法 ? 方法前有 final修飾符,此方法不能在子類方法中進(jìn)行覆蓋 ? 在 JDK中,很多父類的方法被子類重新覆蓋,賦予了 不同的含義,如 Object類中的 boolean equals(Object obj)方法 ? 抽象類中如果存在 抽象方法 ,則 具體 子類必須對抽象方法進(jìn)行覆蓋 覆蓋 —— 注意 class Super { public Integer getLenght() { return new Integer(4)。 } } public class Sub extends Super { public Long GetLenght() { return new Long(5)。 } public static void main(String[] args) { Super sooper = new Super()。 Sub sub = new Sub()。 ( ().toString() + , + ().toString() )。 } } 覆蓋例 2 輸出結(jié)果: 4, 4 第六章 面向?qū)ο螅ㄏ拢? 主要內(nèi)容: ? this與 super ? 構(gòu)造方法的多態(tài)與繼承 ? 抽象類 ? 接口 ? 抽象類與接口 ? 引用 ? 類的其他相關(guān)內(nèi)容 this與 super this this 指代 當(dāng)前對象 ,主要應(yīng)用場合: ? 在一些容易混淆的場合,如成員方法的參數(shù)名與數(shù)據(jù)成員同 名;成員方法的局部變量名與數(shù)據(jù)成員同名。 ? this(參數(shù)) ——引用重載的構(gòu)造方法(見后節(jié)) ? this指帶對象。 【 例 】 。 super super訪問當(dāng)前類的直接父類,主要應(yīng)用場合: ? 子類的數(shù)據(jù)成員或成員方法與父類的數(shù)據(jù)成員或成員方法名 字 相同 時,當(dāng)要調(diào)用父類的同名方法或同名數(shù)據(jù)成員時則可 用 super來指明。即 ; ? super(參數(shù)) //調(diào)用父類構(gòu)造函數(shù) class A { int x=4。int y=1。 public void Printme() { (x=+x+ y=+y)。 (class name: +getClass().getName())。 } } public class AA extends A { int x。 public void Printme() { int z=+6。 = 5。 ()。 (I am an +getClass().getName())。 x=6。 (z=+z+ x=+x+ =++ y=+y+ =+y)。} public static void main(String arg[]) { int k。 A p1=new A()。 AA p2=new AA()。 ()。 ()。} } 運行結(jié)果如下: x=4 y=1 class name: A x=5 y=1 class name: AA I am an AA z=10 x=6 =5 y=1 =1 講解 ? 子類和父類定義了同名數(shù)據(jù)成員,子類繼承了父類的 x,自 己又定義了一個 x,則會發(fā)生父類數(shù)據(jù)成員的 隱藏 。在子類 中用的 x都是子類自己的,若要使用父類 x,則必須用 。 ? 子類在 覆蓋 父類方法的同時,調(diào)用父類的 (),這 個方法中的成員變量均為父類的成員變量。 ()中 的代碼雖然調(diào)用父類代碼,但其中的 this指的是子類對象。 A x=4。y=1 Void Printme(){ } AA x=4。y=1 x Void Printme(){ } int z=+6。 =5 ()。 (I am an +().getName())。 。 x=4在子類隱藏 此處調(diào)用的是父類代碼及父類中的屬性成員 。 構(gòu)造方法的多態(tài)與繼承 構(gòu)造方法的多態(tài) 構(gòu)造方法的多態(tài): 重載 和覆蓋 一個類的若干個重載的構(gòu)造方法之間可以相互調(diào)用。當(dāng)一 個構(gòu)造方法需要調(diào)用另一個構(gòu)造方法時,可以使用關(guān)鍵字 this,同時這個調(diào)用語句應(yīng)該是整個構(gòu)造方法的 第一個 可執(zhí) 行語句。 使用關(guān)鍵字 this來調(diào)用同類的其它構(gòu)造方法,優(yōu)點同樣是 以最大限度地 提高對已有代碼的利用程度 ,減少程序的維護(hù) 工作量。 【 例 】 。 構(gòu)造方法的繼承 構(gòu)造方法的 繼承 遵循以下的原則: ? 父類構(gòu)造方法,子類可以在自己的構(gòu)造方法中使用 super來 調(diào)用,但必須是子類構(gòu)造方法的 第一個可執(zhí)行語句 。 ? 若子類構(gòu)造方法中沒有 顯式 調(diào)用父類構(gòu)造方法,也沒有用 this調(diào)用重載的其它構(gòu)造方法,則在產(chǎn)生子類的對象時, 系統(tǒng)在調(diào)用子類構(gòu)造方法的同時, 默認(rèn) 調(diào)用父類無參構(gòu)造 方法。若子類構(gòu)造方法中顯式調(diào)用了父類構(gòu)造方法,或使 用了 this,則不會默認(rèn)調(diào)用父類無參構(gòu)造方法。 ?綜上兩點:子類的構(gòu)造方法必定調(diào)用父類的構(gòu)造方法。如果不顯式用super方法,必然隱含調(diào)用 super()。 【 例 】 、 【 】 。 子類對象實例化的過程 ? 為對象分配內(nèi)存空間,對成員變量進(jìn)行默認(rèn)的初始化 成員變量 值 byte,short,int 0 long 0L float double Char ?\u0000? boolean false 所有引用聲明 NULL 注: 局部變量必須進(jìn)行顯示初始化。 ? 綁定構(gòu)造方法,將 new中的參數(shù)傳遞給構(gòu)造方法的形式參數(shù)。 ? 調(diào)用 this或 super語句 (二者必居其一 ,不能同時存在 ),有了 this, 則第四步被省略,但有了 super則不省略。 ? 進(jìn)行實例變量的顯式初始化操作, 如: public class A{ int value=4。 //顯式初始化 B b = new B()。 //顯式初始化,注: B為一另一個類 } ? 執(zhí)行當(dāng)前構(gòu)造方法的方法體中的程序代碼。如果本類是 applet,則 init()方法在構(gòu)造方法調(diào)用后執(zhí)行。 → 見下圖 1產(chǎn)生對象并對對象屬性進(jìn)行默認(rèn)初始化 2對構(gòu)造方法中的形式參數(shù)賦值 3存在 this嗎 4存在 super嗎 5對子類中的成員變量進(jìn)行顯式初始化 6執(zhí)行當(dāng)前構(gòu)造方法中的代碼 子類流程 1 Yes 子類流程 2 父類流程 3 Yes No No 3 4 5對子類 。 6執(zhí)行當(dāng)前構(gòu)造方法中的代碼 Yes No Yes No 3 4 5對父類 。 6執(zhí)行當(dāng)前構(gòu)造方法中的代碼 Yes No Yes No 對象成員變量初始化流程圖 class Pare { int i =3。 Pare(){} } class Construct extends Pare { int i=8。 Construct(){} Construct(int num){this()。} int getSuper(){return 。}。 public static void main(String[] args) { Construct ct = new Construct(9)。 ()。 (())。 } } class Construct { int i=1。 Construct(int num,int i) { =i。} public static void main(String[] args) { Construct ct=new Construct(2,3)。 ()。 } } 抽象類 抽象類的定義 抽象( abstract)類 的概念 :用 abstract修飾的類稱為抽象類,用abstract 修飾的成員 方法 稱為抽象方法。 ? 抽象類和具體類的關(guān)系就是一般類和特殊類之間的關(guān)系,是 繼承和被繼承的關(guān)系。 ? 抽象類中可以有 零個 或 多個 抽象方法,也可以包含 非抽象 方 法。只要有一個抽象方法,類前就必須有 abstract修飾。若沒 有抽象方法,類前也可有 abstract修飾。 ? 抽象類不能創(chuàng)建對象,創(chuàng)建對象由具體子類來實現(xiàn),但可以 有 聲明 ,聲明能引用所有具體子類的對象。 ? 對于抽象方法,在抽象類中只指定方法名及類型,而不寫實現(xiàn) 代碼。抽象類必定要派生子類,若派生的子類是具體類,則具 體子類中必須實現(xiàn)抽象類中定義的 所有抽象方法 (覆蓋); 若子類還是抽象類,如果父類中已有同名 abstract方法,則子 類中就不能再有 同名 的抽象方法了。 ?在抽象類中,非抽象方法可以調(diào)用抽象方法。 ? abstract不能與 final并列修飾同一個類(產(chǎn)生邏輯矛盾); abstract 不能與 private ,static(因為 static修飾的方法必然被直
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1