類(lèi)的繼承吐句、內(nèi)部類(lèi)
類(lèi)的繼承
繼承:面對(duì)對(duì)象設(shè)計(jì)的特征之一
繼承的特點(diǎn):
- 子類(lèi)繼承父類(lèi)埃唯,子類(lèi)只能有一個(gè)父類(lèi),父類(lèi)可以有多個(gè)子類(lèi)
- 子類(lèi)繼承了父類(lèi)的除私有的成員屬性和方法外的所有屬性和方法(構(gòu)造方法不包括在內(nèi))
- 子類(lèi)會(huì)默認(rèn)調(diào)用父類(lèi)的無(wú)參構(gòu)造器
- 子類(lèi)只能有一個(gè)父類(lèi),父類(lèi)可以有一個(gè)父類(lèi)(A繼承B马绝,B繼承C)
繼承的優(yōu)點(diǎn):
繼承有利于代碼的復(fù)用择示,通過(guò)繼承可以更有效地組織程序結(jié)構(gòu)束凑,并充分利用已有的類(lèi)來(lái)完成復(fù)雜的任務(wù),減少了代碼冗余和出錯(cuò)的幾率栅盲。
封裝:隱藏實(shí)現(xiàn)功能的過(guò)程汪诉,提供實(shí)現(xiàn)功能的接口;
多態(tài):對(duì)象在不同情況下具有不同表現(xiàn)的能力;
方法的重寫(xiě):必須是子類(lèi)繼承父類(lèi)扒寄,子類(lèi)重寫(xiě)父類(lèi)的方法
方法名鱼鼓、返回值、參數(shù)列表该编、權(quán)限修飾符都要一致迄本,修飾符、方法體可以不一致课竣。
變量的隱藏:子類(lèi)與父類(lèi)的成員變量名相同嘉赎,局部變量與成員變量名相同,會(huì)產(chǎn)生變量隱藏于樟。
抽象類(lèi)
抽象:不同角色站在不同角度看世界
抽象類(lèi):被關(guān)鍵字abstract修飾的類(lèi)
當(dāng)類(lèi)中的某一個(gè)方法不能實(shí)現(xiàn)功能公条,就定義為抽象類(lèi)
抽象方法:只有方法聲明,沒(méi)有方法體
抽象類(lèi)中有抽象方法迂曲,也可以有非抽象方法靶橱;有抽象方法的類(lèi)必須是抽象類(lèi)
抽象類(lèi)與普通類(lèi)的不同:
- 抽象類(lèi)有抽象方法,普通類(lèi)沒(méi)有路捧;
- 抽象類(lèi)不能實(shí)例化抓韩;
- private、final鬓长、static谒拴、構(gòu)造方法不能聲明為抽象方法
接口
接口是一個(gè)特殊的抽象類(lèi),它只包含有常量和抽象方法涉波,沒(méi)有變量和方法實(shí)現(xiàn)英上。
[public] interface 接口名[extends 父接口列表]{
成員常量;//默認(rèn)是public static final修飾的
成員方法;//默認(rèn)是abstract修飾的
}
注意:
- 定義接口是用interface,定義類(lèi)用class啤覆;
- 所有成員常量默認(rèn)是public static final修飾過(guò)的苍日;
- 所有成員方法都是abstract修飾過(guò)的;
- 實(shí)現(xiàn)使用implements窗声;
- 接口是多實(shí)現(xiàn)相恃,類(lèi)是單繼承;
- 普通類(lèi)實(shí)現(xiàn)接口必須實(shí)現(xiàn)接口里面所有的方法笨觅,抽象類(lèi)可以有抽象方法拦耐,實(shí)現(xiàn)接口可以實(shí)現(xiàn)里面的方法,也可以不實(shí)現(xiàn)见剩;
抽象類(lèi)與接口的不同:
- 抽象類(lèi)是一個(gè)類(lèi)杀糯,類(lèi)是繼承,接口是實(shí)現(xiàn)苍苞;
- 抽象類(lèi)是使用class定義固翰,接口使用interface定義
- 接口只有靜態(tài)的常量,抽象類(lèi)有成員變量;
- 接口只有抽象方法骂际,抽象類(lèi)可以有非抽象方法疗琉;
- 抽象類(lèi)是單繼承,接口是多實(shí)現(xiàn)歉铝;
- 抽象類(lèi)有構(gòu)造方法没炒,接口沒(méi)有;
內(nèi)部類(lèi)犯戏、匿名類(lèi)和最終類(lèi)
內(nèi)部類(lèi):指被嵌套在另一類(lèi)中或者是方法中的類(lèi)送火;
- 成員內(nèi)部類(lèi):定義在成員位置的類(lèi)
- 可以在非靜態(tài)的方法中創(chuàng)建對(duì)象;
- 可以在本類(lèi)中創(chuàng)建非靜態(tài)的成員變量對(duì)象先匪;
- 不能在本類(lèi)以外創(chuàng)建對(duì)象种吸;
- 靜態(tài)內(nèi)部類(lèi):static修飾的成員內(nèi)部類(lèi)
- 可以在本類(lèi)成員方法中創(chuàng)建對(duì)象
- 可以在本類(lèi)以外創(chuàng)建對(duì)象;
- 可以創(chuàng)建靜態(tài)的成員變量對(duì)象呀非;
- 方法內(nèi)部類(lèi):定義在成員方法里面坚俗;
- 作用域:只在本方法中調(diào)用,出了這個(gè)方法就沒(méi)法用岸裙;
- 方法內(nèi)部類(lèi)不能是靜態(tài)內(nèi)部類(lèi)猖败;
匿名類(lèi):匿名對(duì)象;
最終類(lèi):被final修飾的類(lèi)降允,不能被繼承恩闻;