Java - 抽象與接口

抽象:

  1. 抽象類不能被實(shí)例化(初學(xué)者很容易犯的錯(cuò)),如果被實(shí)例化,就會(huì)報(bào)錯(cuò),編譯無法通過。只有抽象類的非抽象子類可以創(chuàng)建對(duì)象。

  2. 抽象類中不一定包含抽象方法,但是有抽象方法的類必定是抽象類。

  3. 抽象類中的抽象方法只是聲明,不包含方法體,就是不給出方法的具體實(shí)現(xiàn)也就是方法的具體功能。

  4. 構(gòu)造方法,類方法(用 static 修飾的方法)不能聲明為抽象方法。

  5. 抽象類的子類必須給出抽象類中的抽象方法的具體實(shí)現(xiàn),除非該子類也是抽象類。

抽象方法是一種特殊的方法:它只有聲明,而沒有具體的實(shí)現(xiàn)。抽象方法的聲明格式為:

//擁有抽象方法,類也必須是抽象類。但并不意味著抽象類智能有抽象方法,也可也有普通方法
//因?yàn)槌橄箢愔泻袩o具體實(shí)現(xiàn)的方法,所以不能用抽象類創(chuàng)建對(duì)象
public abstract abstractTest{
      abstract void fun();
}

\color{red}{注意:抽象類和普通類的主要有三點(diǎn)區(qū)別:}

1、抽象方法必須為public或者protected(因?yàn)槿绻麨閜rivate,則不能被子類繼承,子類便無法實(shí)現(xiàn)該方法),缺省情況下默認(rèn)為public。
2、抽象類不能用來創(chuàng)建對(duì)象;
3、如果一個(gè)類繼承于一個(gè)抽象類,則子類必須實(shí)現(xiàn)父類的抽象方法。如果子類沒有實(shí)現(xiàn)父類的抽象方法,則必須將子類也定義為為abstract類。在其他方面,抽象類和普通的類并沒有區(qū)別。

接口:

接口泛指供別人調(diào)用的方法或者函數(shù)。從這里,我們可以體會(huì)到Java語(yǔ)言設(shè)計(jì)者的初衷,它是對(duì)行為的抽象。在Java中,定一個(gè)接口的形式如下:

public interface interfaceTest(){
}

接口中可以含有 變量和方法。但是要注意,接口中的變量會(huì)被隱式地指定為public static final變量(并且只能是public static final變量,用private修飾會(huì)報(bào)編譯錯(cuò)誤),而方法會(huì)被隱式地指定為public abstract方法且只能是public abstract方法(用其他關(guān)鍵字,比如private、protected、static、 final等修飾會(huì)報(bào)編譯錯(cuò)誤),并且接口中所有的方法不能有具體的實(shí)現(xiàn),也就是說,接口中的方法必須都是抽象方法。從這里可以隱約看出接口和抽象類的區(qū)別,接口是一種極度抽象的類型,它比抽象類更加“抽象”,并且一般情況下不在接口中定義變量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 抽象方法和抽象類(abstract) 抽象方法和抽象類使用 abstract 來定義,有抽象方法的類必須被定義為抽...
    AshengTan閱讀 602評(píng)論 0 1
  • 本文出自 Eddy Wiki ,轉(zhuǎn)載請(qǐng)注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 1,275評(píng)論 0 5
  • 抽象類 抽象類和抽象方法必須用abstract修飾 抽象類不能被實(shí)例化 抽象類有默認(rèn)構(gòu)造方法 有抽象方法畢為抽象類...
    塵瀚閱讀 345評(píng)論 0 0
  • 整理來自互聯(lián)網(wǎng) 1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工具...
    Ncompass閱讀 1,618評(píng)論 0 6
  • 夜幕漸漸拉開,從辦公室出來的小婉,一個(gè)人漫無目的地走在大街上。 迎面走來一個(gè)乞丐,手里的杯子在小婉的面前簸了兩下,...
    玖月冬暖閱讀 217評(píng)論 1 2

友情鏈接更多精彩內(nèi)容