天天看點

普通類,抽象類,接口,内部類

普通類和抽象類差別

1.抽象類和普通類都可以被繼承,也可以發生向上轉型,動态綁定;

2.抽象類不能被執行個體化

3.抽象類就是用來繼承的

4.抽象類中可以有普通方法

5.抽象類不能被private修飾

6.如果一個抽象類繼承了一個抽象類,可以不重寫抽象方法,但是如果這個抽象類被一個普通類繼承,一定要在普通類中重寫抽象方法

7.抽象類不能被final修飾

抽象類和接口的差別

1.抽象類是功能不完整的類,而接口是抽象方法聲明和靜态不能被修改的集合,從某種意義上将接口是特殊的抽象類

2.接口使用關鍵字interface來修飾,接口方法預設public abstract;

3.抽象類不能被執行個體化,接口也不能被執行個體化;

4.抽象類和接口的直接關系是implements,此時接口的所有方法被重寫

5.一個類可以實作多個接口,但隻能繼承一個類

6.抽象類和接口都可以實作向上轉型,動态綁定

7.類和接口是implements,而接口與接口之間是extends;

内部類

1.靜态内部類:

相當于外部類的靜态成員,隸屬于外部類,使用static修飾,不能通路外部非靜态方法,使用時相當于一個獨立的靜态類。

2.執行個體内部類:

相當于外部類的普通方法,隸屬于于外部類的具體對象,當定義時,要先建立外部類的執行個體,在建立内部類的執行個體。

3.局部内部類:

定義在方法的方法體中,隻是短暫使用,隻能使用final和abstract修飾,隻能通路final修飾的局部變量。

4.匿名内部類:

定義在方法體中,沒有具體的名字,具有較大的靈活性。