#繼承的概念:依照現有類別的類型來建立新類,無需改變現有類別的形式,這種方法是稱為繼承。
繼承的作用:當你先建立了一個類別 P 之後,現在需要新建一個類別 S ,但功能又與 P 相似。這時候我們想要偷懶,不想重新寫 S,就可以透過繼承來實現。
繼承的關係:繼承關係被分成父類別(基底類別)和子類別(導出類別),。父類別是被繼承的物件(如 P),子類別是實現的繼承的物件(如 S)。
繼承的方式:類別的繼承是單一繼承,即 S 在繼承了 P 之後,不能再繼承 P2。
繼承的特點:子類別透過繼承將自動得到父類別中所有的域(變數)和方法。
繼承的實作:在 Java 中透過關鍵字 extends 實作繼承。
class Parent { } class Son extends Parent { }
Java 中的繼承關係屬於 IS-A 關係。
IS-A 關係如何理解,取上面的栗子:S 繼承了 P,我們可以說 S 是 P 。
在繼承關係中,繼承者完全可以替換被繼承者,反之則不行。一句話,我們「可以把人當牲口使,不能把牲口當人使」。
一個類別透過呼叫建構函式實作初始化。對於繼承來說,子類別、父類別的建構子有以下特點:
子類別在繼承父類別時,如果父類別的建構子是隱含建構器,可以不手動呼叫。
子類別在繼承父類別時,如果父類別的建構器是###明確建構器,則必須手動呼叫。
父類別依序往下進行的。
class Parent { // 无参构造器,即隐式构造器。 public Parent() { System.out.println("initializing Parent"); } } class Son extends Parent { // 带参构造器,属显式构造器 public Son(String name) { // 关键 -> 由于父类是隐式构造器,这里可以不调用。 System.out.println("initializing "+name); } } class Grandson extends Son { public Grandson() { // 关键 -> 父类是显式构造函数,必须手动调用 super("son"); System.out.println("initializing Grandson"); } }public class Test { public static void main(String[] args) { Grandson grandson = new Grandson(); // 关键 -> 构造器调用顺序总是从父类依次往下进行的,打印内容如下: // initializing Parent // initializing Son // initializing Grandson } }
繼承的概念:依照現有類別的類型來建立新類,無需改變現有類別的形式,這種方法是稱為繼承。
繼承的作用:當你先建立了一個類別 P 之後,現在需要新建一個類別 S ,但功能又與 P 相似。這時候我們想要偷懶,不想重新寫 S,就可以透過繼承來實現。
繼承的關係:繼承關係被分成父類別(基底類別)和子類別(導出類別),。父類別是被繼承的物件(如 P),子類別是實現的繼承的物件(如 S)。
繼承的方式:類別的繼承是單一繼承,即 S 在繼承了 P 之後,不能再繼承 P2。
繼承的特點:子類別透過繼承將自動得到父類別中所有的域(變數)和方法。
繼承的實作:在 Java 中透過關鍵字 extends 實作繼承。
class Parent { } class Son extends Parent { }
可以把人當牲口使,不能把牲口當人使」。
隱含建構器,可以不手動呼叫。
,則必須手動呼叫。
往下進行的。
class Parent { // 无参构造器,即隐式构造器。 public Parent() { System.out.println("initializing Parent"); } } class Son extends Parent { // 带参构造器,属显式构造器 public Son(String name) { // 关键 -> 由于父类是隐式构造器,这里可以不调用。 System.out.println("initializing "+name); } } class Grandson extends Son { public Grandson() { // 关键 -> 父类是显式构造函数,必须手动调用 super("son"); System.out.println("initializing Grandson"); } }public class Test { public static void main(String[] args) { Grandson grandson = new Grandson(); // 关键 -> 构造器调用顺序总是从父类依次往下进行的,打印内容如下: // initializing Parent // initializing Son // initializing Grandson } }
以上就是02.Java 基礎- 繼承的內容,更多相關內容請關注PHP中文網(www.php .cn)!
#