繼承的特性
-
子類擁有父類非private的屬性,方法。
-
子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。
-
子類可以用自己的方式實現父類的方法。
-
Java的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如A類繼承B類,B類繼承C類,所以按照關係就是C類是B類的父類,B類是A類的父類,這是java繼承區別於C++繼承的一個特性。
-
提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯繫)。
1、爲什麼使用繼承
從已有的類派生出新的類,稱爲繼承。
在不同的類中也可能會有共同的特徵和動作,可以把這些共同的特徵和動作放在一個類中,讓其它類共享。
因此可以定義一個通用類,然後將其擴展爲其它多個特定類,這些特定類繼承通用類中的特徵和動作。
繼承是 Java 中實現軟件重用的重要手段,避免重複,易於維護,易於理解。
調用父類的構造方法的唯一途徑是使用 super 關鍵字,如果子類中沒顯式調用,則編譯器自動將 super(); 作爲子類構造方法的第一條語句。這會形成一個構造方法鏈。
靜態方法中不能使用 super 關鍵字。
class Base { public Base() { System.out.println("Base--默認構造方法"); } public Base(int c){ System.out.println("Base--有參構造方法--" + c); } } public class Derived extends Base { public Derived() { // super(); //系統會自動隱式先調用父類的無參構造函數 super(); //必須是第一行,否則不能編譯 System.out.println("Derived--默認構造方法"); } public Derived(int c) { // super(); //系統會自動隱式先調用父類的無參構造函數 super(); //必須是第一行,否則不能編譯 System.out.println("Derived--有參構造方法" + c);