子類繼承了父類之後,父類的所有方法都可以被子類呼叫,父類的所有(除私有外)方法都可以被重寫;
但是父類中私有資料域不能在子類中被修改,只能通過呼叫父類的公共修改方法來修改;
例如下面圓幾何繼承了簡單幾何:
以上幾點說明:
簡單幾何類中的構造方法其實不需要寫,因為就算其他類想設定簡單幾何類的私有資料域,可以通過setget方法來獲得,所以完全是多餘的;
(子類繼承也叫做拓展,顧名思義,拓展那些在父類中資料域和方法,子類在父類本身的基礎上,還能夠再新增自己的多樣性,新增了自己的方法和資料域)
圓幾何類拓展了簡單幾何類,除了設定自己的資料域半徑,還可以通過呼叫set方法引用父類的私有資料域,這樣就對父類的拓展;除了資料域拓展,圓幾何類還拓展了求圓面積的方法;(可拓展資料域和方法)
那如何使用這個子類物件呢?
由上可知:繼承了父類的圓幾何類物件,能呼叫父類(除了private修飾的方法,只能在父類中呼叫)和子類中的方法;
乙個父類能被多個子類繼承,乙個子類只能繼承乙個父類,想多重繼承可通過介面實現;
構造方法時注意:若a繼承了b,而a中沒有自己的構造方法(管這叫做顯示定義構造方法),則會隱式呼叫b中的無參構造(編譯器會自動新增super語句),若b中只有有參構造方法,就不會自動新增無參構造方法,會導致編譯錯誤,所以每乙個類中最好帶乙個無參構造方法,但是如果忘記寫構造方法,會自動寫乙個空的無參構造方法;如下所示:
下面是構造方法鏈示例:
也就是說當a繼承了b,b繼承了c。a中new了乙個物件,則先會呼叫a中的無參構造;而a是b的子類,a所有的構造方法執行之前,b中的無參構造方法要先執行;又因為b是c的子類,b所有的構造方法執行之前,c中的無參構造方法要先執行;
關於子類呼叫父類構造方法的問題
昨天班級有乙個小測驗,結果自己覺得還不錯的錯了好幾道題,自己總結了一下,主要是子類繼承父類時候構造方法的問題不太清楚,今天就總結一下。1.子類會預設呼叫父類的無參構造方法 舉例來看 public class derived extends base public static void main s...
java中子類構造方法和父類構造方法
1.當子類不重寫構造方法,子類預設擁有乙個無參構造方法,但是,注意,這個構造方法第一行預設執行super class father class son extends father class demo 執行結果列印出 子類會呼叫father的構造方法 2.當子類重寫了自己的構造方法,構造方法預設第...
java語言基礎 關於子類和父類的構造方法
子類會繼承父類的構造方法 class testsuper public class test extends testsuper public static void main string args 這裡的輸出為120 110 子類會先呼叫父類的構造方法,當然子類可以用super 來顯示呼叫父類的...