北大青鳥(niǎo)北京通州校區(qū)學(xué)術(shù)部總結(jié):java中的final、抽象類(lèi)、接口

北大青鳥(niǎo)北京通州校區(qū)學(xué)術(shù)部提供:

一、final關(guān)鍵字可以用來(lái)修飾類(lèi)、方法、變量。各有不同。
A、修飾類(lèi)(class)。
1、該類(lèi)不能被繼承。
2、類(lèi)中的方法不會(huì)被覆蓋,因此默認(rèn)都是final的。
3、用途:設(shè)計(jì)類(lèi)時(shí),如果該類(lèi)不需要有子類(lèi),不必要被擴(kuò)展,類(lèi)的實(shí)現(xiàn)細(xì)節(jié)不允許被改變,那么就設(shè)計(jì)成final類(lèi)

B、修飾方法(method) (北大青鳥(niǎo)北京通州校區(qū))
1、該方法可以被繼承,但是不能被覆蓋。
2、用途:一個(gè)類(lèi)不允許子類(lèi)覆蓋該方法,則用final來(lái)修飾
3、好處:可以防止繼承它的子類(lèi)修改該方法的意義和實(shí)現(xiàn);更為高效,編譯器在遇到調(diào)用fianal方法轉(zhuǎn)入內(nèi)嵌機(jī)制,提高了執(zhí)行效率。
4、北大青鳥(niǎo)北京通州校區(qū)提醒:父類(lèi)中的private成員方法不能被子類(lèi)覆蓋,因此,private方法默認(rèn)是final型的(可以查看編譯后的class文件)

C、修飾變量(variable)
1、用final修飾后變?yōu)槌A。包括靜態(tài)變量、實(shí)例變量和局部變量這三種。
2、特點(diǎn):可以先聲明,不給初值,這種叫做final空白。但是使用前必須被初始化。一旦被賦值,將不能再被改變。

D、修飾參數(shù)(arguments)
1、用final修飾參數(shù)時(shí),可以讀取該參數(shù),但是不能對(duì)其作出修改。(北大青鳥(niǎo)北京通州校區(qū))

二、抽象類(lèi)&&接口
A、抽象類(lèi)(abstract class)
1、抽象方法(abstract method):不含方法體的方法,它由繼承它子類(lèi)根據(jù)需求去實(shí)現(xiàn),必須用abstract修飾。
2、抽象類(lèi):至少包含一個(gè)抽象方法的類(lèi)(可以包含非抽象方法)。必須用abstract修飾。
3、特點(diǎn):抽象類(lèi)不能被實(shí)例化(也就是不能new對(duì)象);含有抽象方法的類(lèi)必須聲明為抽象類(lèi);一個(gè)類(lèi)只有實(shí)現(xiàn)了抽象類(lèi)中的所有方法才能被實(shí)例化,否則它依然是抽象類(lèi)。(北大青鳥(niǎo)北京通州校區(qū))

B、接口(interface)
1、接口定義:抽象方法和常量值的集合(所有的方法都是抽象方法)。它是一種特殊的抽象類(lèi)(會(huì)生成一個(gè)xxx.class文件,編譯器會(huì)自動(dòng)在interface關(guān)鍵字前加上abstract)。
2、特點(diǎn):
a、接口里的常量默認(rèn)都是public static final來(lái)修飾的(如果什么都不寫(xiě),編譯器會(huì)自動(dòng)幫你寫(xiě)上)。
b、接口里的方法默認(rèn)都是public abstract來(lái)修飾的(如果是什么都不寫(xiě),編譯器會(huì)自動(dòng)幫你寫(xiě)上)。
c、可以用extends繼承已有的接口。
d、一個(gè)類(lèi),可以用implements實(shí)現(xiàn)一個(gè)或多個(gè)接口中的所有方法(包括這個(gè)接口的父接口中的方法)。
e、一個(gè)抽象類(lèi),可以implements實(shí)現(xiàn)接口中的部分方法
f、一個(gè)類(lèi),可以extends一個(gè)父類(lèi)的同時(shí)implements多個(gè)接口,但是extends關(guān)鍵字必須在implements關(guān)鍵字之前。

想要了解北大青鳥(niǎo)好嗎?北大青鳥(niǎo)怎么樣?北大青鳥(niǎo)課程?北大青鳥(niǎo)學(xué)費(fèi)多少等問(wèn)題,歡迎您與通州北大青鳥(niǎo)網(wǎng)站在線老師聯(lián)系

北大青鳥(niǎo)網(wǎng)上報(bào)名
北大青鳥(niǎo)招生簡(jiǎn)章