第九章 接口
第十章 內部類
抽象類和接口
抽象類描述“是不是”——從屬 (public) abstract class 單繼承
//抽象類
public abstract class Example {
//實例變量
int var1;
//靜態變量
static int var2;
//構造方法
public Example(){}
//抽象方法
abstract void method1();
//實例方法
void method2(){}
//靜態方法
static void method3(){}
public static void main(String[] args) {
//'Example' is abstract; cannot be instantiated
//Example example = new Example();
}
}
接口描述“有沒有”——特徵 (public) interface 多重繼承
//接口
public interface Example {
//默認static final, 需初始化
int var1 = 0;
//默認abstract
void method1();
//默認方法, 有方法體 -- jdk1.8
default void method2(){}
// 私有方法 -- java 9 【新增】
private void method3(){}
}
內部類
普通內部類
普通內部類對象依賴外部類對象而存在,即在創建一個普通內部類對象時首先需要創建其外部類對象;內部類對象可以訪問外部類對象中所有訪問權限的字段,同時,外部類對象也可以通過內部類的對象引用來訪問內部類中定義的所有訪問權限的字段
靜態內部類
靜態內部類是作爲一個外部類的靜態成員而存在,創建一個類的靜態內部類對象不需要依賴其外部類對象;靜態內部類不能訪問外部類的非靜態成員,而外部類依然可以訪問靜態內部類對象的所有訪問權限的成員
匿名內部類
匿名內部類中可以使用外部類的屬性,但是外部類卻不能使用匿名內部類中定義的屬性
局部內部類
局部內部類裏面可以訪問外部類對象的所有訪問權限的字段,而外部類卻不能訪問局部內部類中定義的字段