【正文】
例塊 35 靜態(tài)塊 class A{ static{….}// 靜態(tài)塊 } ? 靜態(tài)塊在類被加載到內(nèi)存時(shí)被執(zhí)行 ? 非靜態(tài)成員變量不能在靜態(tài)塊中使用 ? 靜態(tài)塊主要用來初始化靜態(tài)變量及靜態(tài)方法 36 class Outer{ static int a=10。父類引用子類對(duì)象時(shí),可以經(jīng)過顯式的轉(zhuǎn)化賦給子類的聲明,但子類的引用賦值給父類的聲明則不需要。 ?抽象類聲明進(jìn)行引用有什么特點(diǎn)? 抽象類引用可以指向所有具體子類對(duì)象,此概念可以推廣到所有具有父子關(guān)系的類,以及接口和實(shí)現(xiàn)類 31 ? 引用可以替換嗎? 替換是有原則的:父類引用可以指向子類對(duì)象,子類聲明不能引用平行級(jí)別的其它類的對(duì)象 ,也不能引用父類對(duì)象。 如果有方法,則全部是抽象方法。 不同點(diǎn) 屬性變量 可以有變量 不能有,只能是靜態(tài) 常量。 28 ? 接口的抽象方法的訪問限制符只能為缺省或 public,類在實(shí)現(xiàn)方法時(shí),必須顯式使用 public修飾符,否則將被警告為縮小了接口中定義的方法的訪問控制范圍。 27 ? 如果實(shí)現(xiàn)某接口的類不是 abstract的抽象類,則類必須實(shí)現(xiàn)接口的 所有 抽象方法,而且方法頭部分應(yīng)該與接口中的定義完全一致。一個(gè)接口也可被 多個(gè) 類來實(shí)現(xiàn)。 25 接口實(shí)現(xiàn)與使用 ? 給接口中的方法定義具體的操作就是接口的實(shí)現(xiàn) ? 在類的聲明中用 implements子句來表示一個(gè)類實(shí)現(xiàn)了某個(gè)接口。注:方法前不能修飾為 final。 23 ? 接口中沒有 構(gòu)造 方法;所有成員方法都是抽象方法 (與抽象類有所不同)。 22 ? 接口定義的數(shù)據(jù)成員全是 final static(靜態(tài)常量 )。 20 ? interface聲明格式 [public] interface 接口名[ extends 父接口名列表] { //靜態(tài)常量 數(shù)據(jù)成員聲明 [public][static][final] 域類型 域名 = 常量值 //抽象方法 聲明 [public][abstract]返回值 方法名 (參數(shù)列表 )[throw 異常列表 ] } 21 ? 定義接口要注意幾點(diǎn) ? 接口定義用關(guān)鍵字 interface,而不是用class, interface前的修飾符要么為 public,要么為 缺省 。 p u b lic d o u b le k , m 。 p u b lic d o u b le k , m 。 p u b l i c d o u b l e k , m 。pr ot ec t ed d ou bl e m 。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 Ar e a ()圓P r o t e c t e d i n t x , y , z 。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 Ar e a ()矩形Protected int x , y 。 如:矩形、三角形、圓形類的屬性和方法如圖 : Protected int x , y 。 13 ? 在抽象類中,非抽象方法可以調(diào)用抽象方法。 11 ? 抽象類不能創(chuàng)建對(duì)象,創(chuàng)建對(duì)象由具體子類來實(shí)現(xiàn),但可以有 聲明 ,聲明能引用所有具體子類的對(duì)象。 ?只要有一個(gè)抽象方法,類前就必須有abstract修飾。 對(duì)于抽象方法,在抽象類中只指定方法名及類型,而不寫實(shí)現(xiàn)代碼。 x=4 在子類對(duì)象中隱藏 此處調(diào)用的是父類代碼及對(duì)應(yīng)的父類對(duì)象中的屬性成員 。 。 =5 ()。y=1 Void Printme(){ } AA x=4。 void eat(){} void sleep(){} Person(){} } class