《Java編程思想》筆記 第九章 接口
阿新 • • 發佈:2018-05-15
上轉型 有一個 abstract 5.1 pan ace 避免 AC 內部
1.抽象類和抽象方法
1.1 抽象方法,僅有方法聲明沒有方法體
abstract class AbstractClass{ abstract void f(); //沒有 {} }
1.2 只要有一個或者多個抽象方法,則必是抽象類,抽象類可以沒有抽象方法。
1.3 抽象類內可以沒有抽象方法,也可以只有實現的方法。
abstract class AbstractClass{ void g(){ System.out.println("hello"); } }
1.4 繼承抽象類,要覆寫抽象類內的所有抽象方法,提供方法體,如果不提供方法體那麽這個子類也是抽象類,前面要將加關鍵字
2.接口
2.1 接口內沒有任何具體實現,沒有一個方法體。
2.2 接口中的方法默認public權限
2.3 接口中可以有域,但被隱性設定為 static 和 final
2.4 接口權限和類一樣也有public,但必須在同名文件中
3.協變類型:
- 子類中被覆寫的方法返回類型可以是父類方法返回值的子類型
class A { } class B extends A { } abstract class AbstractClass { abstract A g(); } class C extends AbstractClass { //返回值類型是A類型// A g(){ // return null; // } //g() 返回值類型是A類型的子類型B也可以覆寫 B g() { return null; } }
4.多重繼承
4.1 接口 extends 接口 , 接口,接口,. . .
4.2 類 extends 接口,接口,接口, . . .
4.3 類 extends 類 implements 接口,接口,接口, . . .
4.4 類 implements 接口,接口,接口, . . .
- 實現多個接口,這些接口中應該避免有相同的方法名
5.嵌套接口
- 接口可以嵌套在類中或者其他接口中
5.1 把嵌套的接口/類在A類外部看作A類的數據成員,在A類內部就看做正常的接口/類
5.2 類中嵌套的類或者接口權限可以是private
5.3 由於接口中的方法默認public,所以在接口中的接口不能被聲明為private
5.4 嵌套中的 private接口 作用就是 讓這個private接口中的方法無返回類型,不能向上轉型
class A { public class Ain{ } //內部的類權限可以設定為private private class Ain2{ } public interface Aface{ } private interface Aface2{ void f(); //必須返回空值 } }
6.接口與工廠
- 待補充
《Java編程思想》筆記 第九章 接口