99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Java接口介紹

2018-06-29 17:16 更新

接口Interface

  1. 接口中的成員變量默認(rèn)都是public、static、final類(lèi)型的,必須被顯式初始化
  2. 接口中的方法默認(rèn)都是public、abstract類(lèi)型的。
  3. 接口中只能包含public、static、final類(lèi)型的成員變量和public、abstract類(lèi)型的成員方法。
  4. 接口沒(méi)有構(gòu)造方法,不能被實(shí)例化,在接口中定義構(gòu)造方法是非法的。
  5. 一個(gè)接口不能實(shí)現(xiàn)另一個(gè)接口,但它可以繼承多個(gè)其他接口。 interface C extends A, B{} // A和B都是接口
  6. 當(dāng)類(lèi)實(shí)現(xiàn)某個(gè)接口時(shí),它必須實(shí)現(xiàn)接口中所有的抽象方法,否則這個(gè)類(lèi)必須被定義為抽象類(lèi)。
  7. 接口中沒(méi)有方法體 訪(fǎng)問(wèn)控制修飾符 四種訪(fǎng)問(wèn)級(jí)別:public、protected、默認(rèn)、private private只能在同一個(gè)類(lèi)中訪(fǎng)問(wèn) 默認(rèn),只能在同一個(gè)類(lèi),同一個(gè)包中訪(fǎng)問(wèn) protected,可以在統(tǒng)一各類(lèi),同一個(gè)包,子類(lèi)(子類(lèi)可以不在同一個(gè)包中)訪(fǎng)問(wèn) public,不限制訪(fǎng)問(wèn) 類(lèi)可用修飾符: abstract、public、final 構(gòu)造方法:public、protected、private 局部變量:僅僅final abstract修飾符
  8. 抽象類(lèi)中可以沒(méi)有抽象方法,但包含了抽象方法的類(lèi)必須被定義為抽象類(lèi)。
  9. 沒(méi)有抽象構(gòu)造方法,沒(méi)有抽象靜態(tài)方法。 static 和 abstract不能連用
  10. 抽象類(lèi)中可以有非抽象的構(gòu)造方法,創(chuàng)建子類(lèi)的實(shí)例時(shí)可能會(huì)調(diào)用這些構(gòu)造方法。
  11. 抽象類(lèi)及抽象方法不能被final修飾符修飾。final和abstract 不能連用,同樣private和abstract不能連用。
  12. 抽象類(lèi)不能被實(shí)例化。因?yàn)槌橄箢?lèi)可能含有沒(méi)有方法體的抽象方法 final修飾符 final具有;不可改變的;含義,它可以修飾非抽象類(lèi),非抽象成員方法和變量
  13. 用final修飾的類(lèi)不能被繼承,沒(méi)有子類(lèi)。
  14. 用final修飾的方法不能被子類(lèi)的方法覆蓋。
  15. 用final修飾的變量表示常量,只能被賦一次值,必須被顯式初始化。
  16. private修飾的方法默認(rèn)為是final方法,因而不能被子類(lèi)的方法覆蓋。 static修飾符
  17. 靜態(tài)變量在內(nèi)存中只有一個(gè)拷貝,在類(lèi)的所有實(shí)例中共享。
  18. 在靜態(tài)方法中不能直接訪(fǎng)問(wèn)實(shí)例方法和實(shí)例變量。
  19. 在靜態(tài)方法中不能使用this和super關(guān)鍵字。
  20. 靜態(tài)方法不能被abstract修飾
  21. 靜態(tài)方法和靜態(tài)變量都可以通過(guò)類(lèi)名直接被訪(fǎng)問(wèn)。
  22. 當(dāng)類(lèi)被加載時(shí),靜態(tài)代碼塊只被執(zhí)行一次。類(lèi)中不同的靜態(tài)代碼塊按它們?cè)陬?lèi)中出現(xiàn)的順序被依次執(zhí)行 public static void main(String args[]) {} 程序入口方法,可以被final修飾。 super關(guān)鍵字
  23. 在類(lèi)的構(gòu)造方法中,通過(guò)super語(yǔ)句調(diào)用這個(gè)類(lèi)的父類(lèi)的構(gòu)造方法。 在構(gòu)造方法中,super語(yǔ)句必須作為構(gòu)造方法的第一條語(yǔ)句。
  24. 在子類(lèi)中訪(fǎng)問(wèn)父類(lèi)的被屏蔽的方法和屬性
  25. 只能在構(gòu)造方法或?qū)嵗椒▋?nèi)使用super關(guān)鍵字。 super關(guān)鍵字與類(lèi)的特定實(shí)例相關(guān) 方法覆蓋(方法重寫(xiě))
  26. 方法的參數(shù)簽名和返回值類(lèi)型必須相同,訪(fǎng)問(wèn)控制修飾符可以不同,但是子類(lèi)方法不能縮小父類(lèi)方法的訪(fǎng)問(wèn)權(quán)限。
  27. 子類(lèi)方法拋出的異常必須和父類(lèi)方法拋出的異常相同,或者是父類(lèi)方法拋出的異常類(lèi)的子類(lèi)。
  28. 父類(lèi)的靜態(tài)方法是不能被子類(lèi)覆蓋為非靜態(tài)方法。 父類(lèi)的非靜態(tài)方法不能被子類(lèi)覆蓋為靜態(tài)方法。
  29. 子類(lèi)可以定義與父類(lèi)的靜態(tài)方法同名的靜態(tài)方法,以便在子類(lèi)中隱藏父類(lèi)的靜態(tài)方法。區(qū)別:運(yùn)行時(shí),JVM把靜態(tài)方法和所屬的類(lèi)綁定,而把實(shí)例方法和所屬的實(shí)例綁定。
  30. 父類(lèi)的私有方法不能被覆蓋
  31. 父類(lèi)的非抽象方法可以被覆蓋為抽象方法 方法重(chong)載
  32. 在一個(gè)類(lèi)中不允許兩個(gè)方法名相同,并且參數(shù)簽名也完全相同的方法。
  33. 類(lèi)的同一種功能,可能有多種實(shí)現(xiàn),到底采用哪種實(shí)現(xiàn)方式,取決于調(diào)用者給定的參數(shù)。
  34. 對(duì)于類(lèi)的方法(包括從父類(lèi)中繼承的方法),如果有兩個(gè)方法的方法名相同,但參數(shù)不一致,那么可以說(shuō),一個(gè)方法是另一個(gè)方法的重載方法。 多態(tài)
  35. 對(duì)于一個(gè)引用類(lèi)型的變量,Java編譯器按照它聲明的類(lèi)型來(lái)處理。 Base base = new Sub(); base.subMethod(); // 編譯出錯(cuò),Base基類(lèi),Sub子類(lèi),編譯器認(rèn)為base是Base類(lèi)型的引用變量,Base類(lèi)沒(méi)有subMethod()方法。這樣子,就必須使用強(qiáng)制轉(zhuǎn)換。(Sub)(base).subMethod();
  36. 對(duì)于一個(gè)引用類(lèi)型的變量,運(yùn)行時(shí)JVM按照它實(shí)際引用的對(duì)象來(lái)處理。 Base base = new Base(); Sub sub = (Sub)base; // 編譯通過(guò),但是運(yùn)行時(shí)拋出ClassCastException 在運(yùn)行時(shí),子類(lèi)的引用類(lèi)型變量可以轉(zhuǎn)換為父類(lèi)的引用類(lèi)型,而相反的過(guò)程卻不可以。 假定可以,即上邊兩行代碼運(yùn)行正常,那么sub.subMethod(); 執(zhí)行時(shí),JVM將找不到subMethod。sub實(shí)際引用的是Base類(lèi)的實(shí)例。
  37. 在運(yùn)行時(shí)環(huán)境中,通過(guò)引用類(lèi)型變量來(lái)訪(fǎng)問(wèn)所引用對(duì)象的方法和屬性時(shí),JVM采用以下的綁定規(guī)則。 ①實(shí)例方法與引用變量實(shí)際引用的對(duì)象的方法綁定,即動(dòng)態(tài)綁定。 ②靜態(tài)方法與引用變量所聲明的類(lèi)型的方法綁定,即靜態(tài)綁定。 編譯階段即綁定完成。 ③成員變量(靜態(tài)變量和實(shí)例變量) 與引用類(lèi)型所聲明的類(lèi)型的成員變量綁定。靜態(tài)綁定。
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)