標籤:物件導向
抽象類別
1.包含一個抽象方法的類為抽象類別,抽象類別要用abstract修飾,不能直接使用其執行個體化對象,可以聲明對象。
ps:什麼是抽象方法呢?就是一個只被定義,而沒有實現的方法(public abstract void fun();),就是沒有{….方法體…}的方法。
2.抽象類別是給子類繼承的,繼承抽象類別的子類必須覆寫所有抽象方法,否則該子類還是抽象類別,不能執行個體化對象。
3.抽象類別當然不能用final修飾
例:
/** * 定義抽象類別,用abstract修飾 * 至少包含一個抽象方法*/public abstract class AbstractClass { //抽象方法,沒有方法體 public abstract void fun();}
介面
1.介面是一個特殊的類,Java中的介面是由抽象方法和全域常量組成。
例:
/* * 定義一個介面 * 由全域常量和抽象方法組成 * */public interface InterfaceDemo { public static final String INFO = "CHNA";//全域常量 public abstract void fun();//抽象方法}
2.介面是供一個子類實現的,用implement關鍵字
例:
/* * 實現介面 InterfaceDemo * 要覆寫介面的全部抽象方法 * */public class ImplementInterfaceDemo implements InterfaceDemo { @Override public void fun() {}}
3.在定義介面時,內部的全域常量的修飾詞public static final 關鍵字可以省略,內部的抽象方法的修飾詞public abstract關鍵字可以省略
4.一個類若既有繼承又有實現,則先繼承,在實現。
例:
class A extends 類名稱 implements 介面名稱1,介面名稱2{}
5.一個抽象類別可以實現多個介面,但一個介面不可以繼承抽象類別,可以實現多個介面
抽象類別與介面的區別:
匿名內部類
一個對象只使用一次,可以使用匿名對象,如果一個類只使用一次則可以用匿名內部類了。
public interface A { public void fun();}//實現A介面class B implements A { @Override public void fun() { System.out.println("Hello World!"); }}class xx{ public void temp(A a){ a.fun(); } public void fun1(){ temp(new B()); }}public class Demo{ public static void main(String[] args){ new xx().fun1(); }}
若B類只使用一次,則可以用匿名內部類實現上面的代碼:
public class X { public void temp(A a){ a.fun(); } public void fun1(){ temp(new A(){ @Override public void fun() { System.out.println("hello"); } }); }}
異常
1.Java中對異常的處理機制:撲捉異常,拋出異常
2.異常的處理可以使程式在有錯誤時,可以繼續執行下去
3.異常的處理格式:
try{ 可能出現異常的程式碼片段}catch(異常類 異常對象){ 處理異常}catch(異常類 異常對象){ 處理異常}....finally{ 異常的出口,不管是否有異常,該段語句都會執行}
包及存取權限
1.包就是一個檔案夾,使用package關鍵字聲明包,需要在一個類檔案的第一行
2.程式中使用其他的包,可以重具體位置匯入,用import語句表示
3.包的靜態匯入,若一個類中的方法或者變數全部是靜態,則可以使用靜態匯入,規則:import static 包名
4.包的存取權限:
未完待續。。。。
Java基礎知識之物件導向(2)