Java 接口/抽象類/內(nèi)部類

1. 接口

接口為我們提供了一種將接口與實現(xiàn)分離的更加結(jié)構(gòu)化的方法。接口是一個完全的抽象類,它沒有提供任何形式的具體實現(xiàn),它允許創(chuàng)建者確定方法名,參數(shù)類表,返回類型沒有任何方法體的方法。

接口被用來建立類與類之間的協(xié)議。接口類修飾符必須是public,default(默認的,本包內(nèi)有訪問權(quán)限)或者前邊兩個和abstract組合,接口也可以包含域,但是這些域隱士地是public static final類型的,所有接口域必須初始化值。接口中方法默認訪問級別都是public,如果定義訪問級別小于public,編譯將不能通過。

接口是用來實現(xiàn)類間多重繼承功能的結(jié)構(gòu).

接口不能實例化,即不能用new運算符創(chuàng)建對象。

一個類通過使用關(guān)鍵字implements聲明自己實現(xiàn)一個或多個接口。

在類體中可以使用接口中定義的常量,而且必須實現(xiàn)接口中定義的所有方法

接口中的方法是自動公有的,在實現(xiàn)接口時必須把方法聲明為public 。接口中的方法都是抽象的。

一個接口可以繼承另一個接口。

任何類(包括普通類,內(nèi)部類,抽象類)可以實現(xiàn)一個接口。

2. 抽象類

抽象類也叫做抽象基類,抽象類是基礎(chǔ)類和接口中間的一個中庸之道,即有基礎(chǔ)類特性(已實現(xiàn)的方法體),又有接口特性(抽象方法),抽象類用abstract修飾,抽象類中可以有抽象方法也用abstract來修飾。

抽象方法:java 中可以定義一些不含方法體的方法,它的方法體的實現(xiàn)交給該類的子類根據(jù)自己的情況去實現(xiàn)。

抽象類:包含抽象方法的類叫抽象類。一個抽象類可以有一個或多個抽象方法。

抽象類必須使用abstract修飾符來定義,抽象方法也必須用abstract來修飾。

抽象類不能被實例化,不能用new關(guān)鍵字去產(chǎn)生對象。

抽象方法只能聲明,不能實現(xiàn)。

含有抽象方法的類必須被聲明為抽象類,抽象類的子類必須覆蓋所有的抽象方法后才能被實例化,否則這個子類還是個抽象類。

3. 內(nèi)部類

可以將一個類的定義放在另一個類的定義內(nèi)部,這就是內(nèi)部類,內(nèi)部類允許你把一些邏輯相關(guān)的類組織在一起,并控制內(nèi)部類的可視性,內(nèi)部類和組合是完全不同的概念,這點要注意。

最初,內(nèi)部類看起來就是一種類隱藏機制,將類置于其他類的內(nèi)部,但是其實內(nèi)部類用途遠遠不止這些,它可以和外部類進行通信,而且你用內(nèi)部類寫出的代碼更加優(yōu)美清晰。

定義:在一個類內(nèi)部定義類

內(nèi)部類的寫法:class 類名{ }

它可以直接訪問和引用他的外部類的所有變量和方法,與外部類相比,內(nèi)部類可以聲明為private或protected.

用static修飾一個內(nèi)部類時(嵌套類),這個類相當(dāng)于是一個外部定義的類,所以static的內(nèi)部類中可聲明static成員

static內(nèi)部類不能使用外部類的非static成員變量

函數(shù)的局部變量(形參也是局部變量),內(nèi)部類的成員變量,外部類的成員變量重名,用以下方式來明確指定我們真正要訪問的變量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,142評論 0 62
  • 本文出自 Eddy Wiki ,轉(zhuǎn)載請注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 1,227評論 0 5
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,267評論 0 2
  • 淺談對區(qū)塊鏈資產(chǎn)錢包概念的感悟(之一) 這個星期又重新看了一遍老貓在“一塊聽聽”上的“撥開區(qū)塊鏈資產(chǎn)錢包的...
    夢林1008閱讀 432評論 2 3