Java面向物件——特徵二:繼承性簡介
阿新 • • 發佈:2020-08-20
1.繼承的基礎使用
父類Person的內容:
package com.xlx.java; public class Person { String name; int age;
// 構造器 public Person() { } public Person(String name,int age) { this.name=name; this.age=age; } public void sleep() { System.out.println("睡覺"); } public void eat() { System.out.println("吃飯"); } }
子類Student的內容:
package com.xlx.java; public class Student extends Person{ String major; public Student() { } public Student(String name,int age,String major) { this.name=name;this.age=age; this.major=major; } public void study() { System.out.println("學習"); } }
說明:
- extends關鍵字作用是子類Student繼承自父類Person
- 繼承自父類後的子類可以直接使用父類中宣告的所有方法屬性
- 即父類儲存了所有子類中所共有的屬性及方法
- 父類中的私有的屬性,通過get,set方法也可以呼叫
- 只是因為封裝性的影響,使得子類不能直接呼叫父類的結構而已
- 子類繼承父類以後,還可以定義自己的屬性和方法
圖示:
繼承性的優點:
- 減少了程式碼的冗餘,避免重複程式碼
- 便於功能的擴充套件
- 為多型性的使用,提供了前提
2.繼承性的格式:
class A extends B{}
A即子類(派生類/subclass),B即父類(超類、基類/superclass)
3.繼承性再說明:
(1)Java只支援單繼承和多層繼承,不允許多重繼承
- 一個子類只能有一個父類 class A extends B{}(√)
- 一個父類可以派生出多個子類 class A extends B,C,D...{}(×)
(2)子類父類的概念是相對的
- 子類直接繼承的父類稱為直接父類,間接繼承的稱為簡介父類
- 繼承父類以後,就獲取了直接父類以及所有間接父類中宣告的屬性和方法
(3)如果我們沒有顯式的宣告一個類的父類的話,則此類繼承於java.lang.Object類
即所有的java類(除java.lang.Object類外),都直接或者間接繼承於java.lang.Object類
意味著,所有的java類都具有java.lang.Object類中宣告的功能