1.繼承含義
在面向對象編程中,可以通過擴展一個已有的類,并繼承該類的屬性和行為,來創(chuàng)建一個新的類,這種方式稱為繼承(inheritance).
2.繼承的優(yōu)點
A.代碼的可重用性
B.子類可以擴展父類的屬性和方法
C.父類的屬性和方法可用于子類
D.設計應用程序變得更加簡單
3.如何判斷類具有繼承關系?
類與類的關系: a. has—a(組合關系)
b. is—a(繼承關系)
4. Java中繼承的實現(xiàn)(關鍵字:extends)
關鍵字extends出現(xiàn)在類聲明時的類名后,extends后面跟著的是要繼承的類的名稱。例如:public class Salary extends Emp{
}
5.繼承具有單根性和傳遞性
6.所有類的根類Object(基類,超類)
public class Emp extends Object{
}
Object類中的方法簽名:
A.public final Class getClass( )
B.public int hashCode( )該方法返回對象的哈希值碼。
C.public boolean equals(Object x)該方法可以檢測兩個對象是否相等。
D.PRotected Object clone() throws CloneNotSupportedException
E.public String toString()該方法返回對象的字符串表示。
F.protected void finalize() throws Throwable:該方法在對象將要被垃圾回收時調用。
G.public final void wait() throws InterruptedException:線程
H.public final void notify():線程
7.方法重寫(方法重寫出現(xiàn)在子類中,子類重寫父類的方法,構造方法不能被繼承)
A.方法重寫含義:子類可以重寫從父類繼承的方法,從而允許子類添加或者改變父類中方法的行為。
B.子類重寫父類需遵循的規(guī)則:
a.子類的方法的方法名,返回值類型,參數(shù)列表都必須與父類中的相同。
b.子類的訪問修飾符必須不小于父類中的訪問修飾符。(子類中的訪問修飾不能比父類中的更嚴格)
c.子類中重寫的異常不能拋出比父類更多的異常。
8.super關鍵字
A.子類用關鍵字super來調用父類中重寫的方法(super指代的是父類對象)
B.使用super調用父類的構造器,如果構造器沒有使用super關鍵字,那么編譯器會自動添加一個無參的super()來調用父類構造器
9.final關鍵字
a.final變量不能被改變
b.final類不能被繼承
c.final方法不能再被重寫
10. 訪問修飾符
本類 | 同一包中不同類 | 不同包 | 子類 | |
public | Y | Y | Y | Y |
protected | Y | Y | Y | |
default(不寫) | Y | Y | ||
private | Y |
11.封裝
A.含義:封裝是使類中的成員變量都是private,并提供public方法訪問這些成員變量的技術。
B.封裝使用getter,setter,
例如:public int getId(){
}
public void setId(int id){
this.id = id;
}
C.封裝優(yōu)點:
a.類的成員變量可以成為只讀或只寫
b.類可以對存儲在其它成員變量中的內容有一個整體的控制
c類的用戶不需要知道類是如何存儲數(shù)據(jù)的
12. 靜態(tài)成員:用static修飾的成員,static可以被共享,訪問靜態(tài)成員要使用 類名. 。靜態(tài)方法不能訪問非靜態(tài)成員。
13. 靜態(tài)初始化塊:
例如:public class Rad{
static {
//靜態(tài)代碼塊出現(xiàn)在構造器之前
}
}
14. 非靜態(tài)(成員代碼塊)(實例化初始塊):
例如:public class Rad{
{
//實例化初始塊
}
}
實例化初始塊中的語句在任何父類構造器調用之后,在子類構造器調用之前執(zhí)行。
15. 內部類:在類的內部定義的類,內部類所在的類類稱為外部類。
A.內部類的特點 :
B.靜態(tài)內部類:
定義方法: class Outer{
static class Inner{
//靜態(tài)內部類不能訪問到外部的成員,除非外部成員也是靜態(tài)成員
}
}
靜態(tài)內部類創(chuàng)建對象:a.用外部類. b.導入內部類所在的包 c.用全限定名
C.成員內部類:
定義方法:class Outer{
class Inner{
//成員內部類可以訪問到外部的成員
}
}
成員內部類創(chuàng)建對象:Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
D.局部內部類:只能在方法內部中使用
定義方法:class Outer{
Void fd(){
class Inner{
//局部內部類
}
}
new Inner().fd();
}
E.匿名內部類:沒有名字
形式定義:new 類或接口的名字(){
//匿名內部類的主體
}
新聞熱點
疑難解答