# 9/2 K速記 * 修飾詞 | | private | default | protected | public | | -------- | -------- | -------- |-------- |-------- | | 同一個類 | O | O | O | O | | 同一個package | | O |O | O | | 不同package的子類 | | | O | O | | 不同package的非子類 | | | | O | 1. 函式 = 拉出重複行為 2. 類別 = 拉出重複行為 且 伴隨重複的方法 3. 繼承 = * 繼承 - (java 只有 ***單一繼承***) * 子類別 * 將父類別所公開(public)的屬性及方法(複製給子類別),直接可調用 * 建構子 * 子類別 包含 父類別的建構子 及 子類別的建構子,父類別會先被執行 無參數建構子 * 若 父類別都需要參數的建構子 則子類別 建構子 需要呼叫 super(1); 以進行父類別 帶參數建構子的呼叫。 * java 所有的類別 都繼承 java.lang.Object * override(覆寫) * 子類別建立方法 但與父類別同名 且參數相同,則在子類別呼叫會使用子類別方法,稱為override * @Override 符號 作為標示 * 多形 * 父類別 = 子類別; ,可以由子類別取出完整的父類別,但可能遺失子類別專屬的屬性與方法 * 取得父類別後,可存取父類別的private數及方法 * 父類別 = 不同子類別 => 可以變成不同的實體,在執行時期 才決定型態 * 搭配override 則可切換子類別的 ***方法*** 內容 * 子類別 = 父類別; 一般無法使用 後續有強制轉型方式。 * toString() 任何類別 都有這個方法 作為列印時 使用 ```java= Square s = new Square(3); System.out.println(s);//使用object的toString方法 內部呼叫 System.out.println(s.toString()); ``` 可以使用override更改toString()方法,作為列印物件時的特別方式。