如何理解接口抽象類(lèi)和關(guān)鍵字?
按照我對(duì)提問(wèn)的理解,應(yīng)該是想要知道兩個(gè)問(wèn)題:一、接口與抽象類(lèi)的區(qū)別,二、java關(guān)鍵字怎么理解。(雖然不知道是不是一定是您想要的,但至少帶給您一些幫助吧)
首先來(lái)看第一個(gè),接口與抽象類(lèi)的區(qū)別:

一、抽象類(lèi)
抽象類(lèi)是為了繼承而存在的,是用來(lái)捕捉子類(lèi)通用性的。必須在類(lèi)前用abstract關(guān)鍵字修飾,它不能被實(shí)例化,只能被用作子類(lèi)的超類(lèi),可以將它看成是用來(lái)創(chuàng)建繼承層級(jí)里子類(lèi)的模版。
雖然包含了抽象方法的類(lèi)就是抽象類(lèi),但不意味著抽象類(lèi)中只能存在抽象方法,它跟普通類(lèi)一樣,也可以擁有自己的成員方法和變量。
如果一個(gè)類(lèi)繼承于一個(gè)抽象類(lèi),那么子類(lèi)必須要實(shí)現(xiàn)父類(lèi)的抽象方法,否則子類(lèi)必須也定義為abstract類(lèi)。
二、接口
接口就是平時(shí)我們提供別人調(diào)用的方法。可以將其想象成抽象方法的集合,使用interface關(guān)鍵在修飾,如果一個(gè)類(lèi)實(shí)現(xiàn)了某個(gè)接口,那么就必須實(shí)現(xiàn)接口中的方法,java允許一個(gè)類(lèi)實(shí)現(xiàn)多個(gè)接口。
三、兩者的區(qū)別總結(jié)
1、一個(gè)類(lèi)只能繼承一個(gè)抽象類(lèi),但是可以實(shí)現(xiàn)多個(gè)接口;
2、抽象類(lèi)中可以包含抽象方法和非抽象方法,但是,接口中的所有方法均為抽象的;
3、抽象類(lèi)中可以包含靜態(tài)代碼塊和靜態(tài)方法,而接口則不允許。

四、何時(shí)使用抽象類(lèi),何時(shí)用接口
1)如果你想讓一些方法有默認(rèn)的實(shí)現(xiàn),那么請(qǐng)使用抽象類(lèi);
2)如果你想實(shí)現(xiàn)多重繼承,那么請(qǐng)使用接口。
五、最后說(shuō)下關(guān)鍵字
java中的關(guān)鍵字很多,比如,有訪問(wèn)控制的:private、public、protected;有類(lèi)、方法、變量修飾符的:class、abstract、interface、static;有程序控制的:for、while、continue、break等等,這里就不一一列舉了。
由上述看來(lái),關(guān)鍵字可以理解為事先定義好的有特殊含義的字符,它們可以用來(lái)被java所認(rèn)識(shí),用來(lái)表示一種數(shù)據(jù)類(lèi)型或者程序結(jié)構(gòu)的。

