【正文】
1 第六章 面向?qū)ο螅ㄏ拢? 2 主要內(nèi)容 ? this與 super ? 構(gòu)造方法的多態(tài)與繼承 ? 抽象類與接口 ? 引用 ? 類的其他相關(guān)內(nèi)容 3 this與 super this的用法 this指代 當(dāng)前對(duì)象 ? this() ? ?this當(dāng)參數(shù)傳遞給其他方法 【 例 】 4 super super引用當(dāng)前對(duì)象繼承自父類的成員 ? ? super() 5 class Person{ int age。 int height。 void eat(){} void sleep(){} Person(){} } class Student extends Person{ int score。 Student(){} void study(){} } this可引用的范圍 Person() Student score study() Student() age height eat() sleep() super可引用的范圍 6 運(yùn)行結(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 【 例 】 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 在子類對(duì)象中隱藏 此處調(diào)用的是父類代碼及對(duì)應(yīng)的父類對(duì)象中的屬性成員 。 7 構(gòu)造函數(shù)的多態(tài)和繼承 ? 一個(gè)類可以定義多個(gè)構(gòu)造函數(shù),構(gòu)造函數(shù)之間用 this()相互調(diào)用 ? 構(gòu)造函數(shù)不能被繼承,可以在子類構(gòu)造函數(shù)中用 super()調(diào)用父類構(gòu)造函數(shù) 【 例 】 【 例 】 8 抽象類 抽象類的定義 用 abstract修飾的類稱為抽象類, 用 abstract修飾的成員 方法 稱為抽象方法。 對(duì)于抽象方法,在抽象類中只指定方法名及類型,而不寫實(shí)現(xiàn)代碼。 9 [public] abstract class 類名 [extends 父類名列表 ] { //數(shù)據(jù)成員聲明 //抽象方法 聲明 [public][abstract]返回值 方法名 (參數(shù)列表 )[throw 異常列表 ] } 【 例 】 10 ? 抽象類中可以有 零個(gè) 或 多個(gè) 抽象方法,也可以包含 非抽象 方法。 ?只要有一個(gè)抽象方法,類前就必須有abstract修飾。若沒(méi)有抽象方法,類前也可有 abstract修飾。 11 ? 抽象類不能創(chuàng)建對(duì)象,創(chuàng)建對(duì)象由具體子類來(lái)實(shí)現(xiàn),但可以有 聲明 ,聲明能引用所有具體子類的對(duì)象。 12 ? 抽象類必定要派生子類,若派生的子類是具體類,則具體子類中必須實(shí)現(xiàn)抽象類中定義的 所有抽象方法 (覆蓋);若子類還是抽象類,父類中已有的 abstract方法,則子類中就不能再有。 13 ? 在抽象類中,非抽象方法可以調(diào)用抽象方法。 ? abstract不能與 final并列修飾同一個(gè)類;abstract 不能與 private ,static,final或 native并列修飾同一個(gè)方法; abstract 類中不能有 private成員 14 抽象類的產(chǎn)生過(guò)程 抽象類形成的思維過(guò)程:客觀事物 —對(duì)象 —類 —抽象類。 如:矩形、三角形、圓形類的屬性和方法如圖 : Protected int x , y 。Protected int width , height 。P u b l i c d o u b l e g e t P e r i m e t e r ()P u b l i c d o u b l e g e t