精華筆記:
- 介面:
- 是一種資料型別(參考型別)
- 由interface定義
- 只能包含常量和抽象方法(所有資料默認都是常量,所有方法默認都是抽象的)
- 介面不能被實體化
- 介面是需要被實作/繼承的,實作/派生類:必須重寫所有抽象方法
- 一個類可以實作多個介面,用逗號分隔,若又繼承又實作時,應先繼承后實作,
- 介面可以繼承介面
筆記:
-
介面:
-
是一種資料型別(參考型別)
-
由interface定義
-
只能包含常量和抽象方法(所有資料默認都是常量,所有方法默認都是抽象的)
-
介面不能被實體化
-
介面是需要被實作/繼承的,實作/派生類:必須重寫所有抽象方法
-
一個類可以實作多個介面,用逗號分隔,若又繼承又實作時,應先繼承后實作,
-
介面可以繼承介面
//介面的演示 public class InterfaceDemo { public static void main(String[] args) { //Inter5 o = new Inter5(); //編譯錯誤,介面不能被實體化 Inter5 o1 = new Doo(); //向上造型 Inter4 o2 = new Doo(); //向上造型 } } //演示介面的語法 interface Inter{ public static final int NUM = 5; public abstract void show(); int COUNT = 5; //默認public static final void test(); //默認public abstract //int number; //編譯錯誤,常量必須宣告同時初始化 //void say(){ } //編譯錯誤,抽象方法不能有方法體 } //演示介面的實作 interface Inter1{ void show(); void test(); } class Aoo implements Inter1{ public void show(){} //重寫介面中的抽象方法時,必須加public權限 public void test(){} } //演示介面的多實作 interface Inter2{ void show(); } interface Inter3{ void test(); } abstract class Boo{ abstract void say(); } class Coo extends Boo implements Inter2,Inter3{ public void show(){} public void test(){} void say(){} } //演示介面繼承介面 interface Inter4{ void show(); } interface Inter5 extends Inter4{ void test(); } class Doo implements Inter5{ public void test(){} public void show(){} }
-
補充:
-
水雷入場、戰艦移動的功能可以CV的代碼:
KeyAdapter k = new KeyAdapter() { public void keyReleased(KeyEvent e) { //當按鍵抬起時會自動觸發---不要求掌握 if(e.getKeyCode()==KeyEvent.VK_SPACE){ //若抬起的是空格鍵---不要求掌握 } if(e.getKeyCode()==KeyEvent.VK_LEFT){ //若抬起的是左箭頭---不要求掌握 } if(e.getKeyCode()==KeyEvent.VK_RIGHT) { //若抬起的是右箭頭---不要求掌握 } } }; this.addKeyListener(k); //添加偵聽---不要求掌握 -
類中成員的默認訪問權限---------默認的
介面中成員的默認訪問權限------public的
重寫介面中的抽象方法時,必須加public權限
-
類和類------------------------繼承
介面和介面------------------繼承
類和介面---------------------實作
-
能夠造型成為的型別:超類+所實作的介面
-
設計規則:
-
將所有派生類所共有的屬性和行為,抽到超類中-------------抽共性
-
若派生類的行為(實作代碼)都一樣,設計為普通方法
若派生類的行為(實作代碼)都不一樣,設計為抽象方法
-
將部分派生類所共有的屬性和行為,抽到介面中
介面是對繼承的單根性的擴展--------------實作多繼承
介面是一個標準、一種規范,實作了介面就能干某件事,不實作介面就干不了那個事
-
-
如何調錯:---------------------幫助我們找到問題位置所在
-
快速鎖定問題方法:
-
將方法呼叫的代碼全都注釋掉,然后一個一個放開,
放開哪個出錯了,說明問題就出在那個方法上,
-
-
打樁: System.out.println(資料);
-
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/501327.html
標籤:其他
