用關鍵字extends來表示一個類繼承了 另一個類 public class Sub extends Base1{ 。。。。 } 如果Sub和Baes1類位於同一個包中: sub繼承base類中的public,protectd和預設訪問級別的成員變數和成員方法。 ----------------------不在同一個包中: ~~~~~~~~~~~~~~不會繼承預設訪問級別的成員變數和成員方法。 Java中不支持多繼承。只允許一個類直接繼承一個類。但是他可以有很多的間接父類。 class Base1 extends Base2{} class Sub extends Base1{} JAVA所有的類都繼承java.lang.Object類 方法重載Overload 對於類的方法(包括從父類中繼承的方法) 方法名相同--方法的參數類型、個數、順序至少有一項不相同。就叫做方法的重載。 另外倆個必須滿足的條件,1-方法的返回類型可以不同 2-方法的修飾符可以不同。 在關鍵字abstract方面,不是抽象類,不能包含抽象方法。 方法的覆蓋Override 為了提高代碼的可重用性,父類的方法應適用於大多數的子類的實現,這樣就可以避免子類中重覆定義相似方法, 但是一小部分的子類在這個方法與父類實現方式不一樣,這個類就必須重新定義。 (1)子類的方法名,參數簽名和返回類型必須一致。 (2)子類方法不能縮小父類方法的訪問許可權。如,父類public,子類就不能是private (3)子類不能拋出比父類更多的異常。 要麼子類方法拋出的異常和父類的相同,要麼多拋出的異常是父類方法拋出的異常的子類。 (4)方法覆蓋只能在子類和父類間,同一個類中只能重載 (5)父類的靜態方法不能被子類覆蓋為非靜態方法。 父類的非靜態方法不能被子類覆蓋為靜態方法。 父類的私有方法不能被子類覆蓋。 (6)子類可以定義與父類的靜態方法同名的靜態方法,以便在子類中隱藏父類的靜態方法。 隱藏父類的靜態方法和子類覆蓋父類的實例方法: Java虛擬機講靜態方法和所屬的類綁定,而把實例方法和所屬的實例綁定。 (7)父類的私有方法不能被子類覆蓋 。 (8)父類的抽象方法被子類覆蓋 有兩種途徑: 一、子類實現父類的抽象方法 二、子類重新聲明父類的抽象方法。 public abstract class base{ abstract void method1(){}; abstract void method2(){}; } public abstract class sub extends base() { public void method1(){}//實現method1方法, 並擴大訪問許可權。 public abstract void method2(){};//重新聲明method2方法,僅僅擴大訪問許可權,不 實現。 } (9)父類的非抽象方法可以被覆蓋為抽象方法. 總結的不完善,希望大家能多給點意見。