1. 程式人生 > 實用技巧 >Java面向物件——特徵二:繼承性簡介

Java面向物件——特徵二:繼承性簡介

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方法也可以呼叫
  • 只是因為封裝性的影響,使得子類不能直接呼叫父類的結構而已
  • 子類繼承父類以後,還可以定義自己的屬性和方法

圖示:

  

繼承性的優點:

  1. 減少了程式碼的冗餘,避免重複程式碼
  2. 便於功能的擴充套件
  3. 為多型性的使用,提供了前提

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類中宣告的功能