首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 類別與子類關係釐清:繼承關係中「自己的類」指父類,「子類」指繼承者

     編輯:程式設計綜合問答

術語定義

  • 父類 / 基類 / 超類:被繼承的類別。書中「自己的類」指定義 protected 成員的那個類別(父類)。
  • 子類 / 派生類:使用 extends 繼承父類的類別。

存取權限對照

修飾符同類同套件子類不同套件子類無關類
private✅❌❌❌
default✅✅❌❌
protected✅✅✅❌
public✅✅✅✅

程式碼對應


// 例 1:protected 示範
class Usepro {                 // 父類
    protected int a;
    protected void print() {}
}
public class Person4 {         // 無關類(含 main)
    Usepro u = new Usepro();   // 同套件可存取 protected
    u.a = 1; u.print();
}

// 例 2:private 示範
class Usepri {                 // 父類
    private String uname;
    private int getuid() {}    // 私有方法
    public String getuname() { return uname; } // 公開 getter
}
public class Person {          // 無關類
    Usepri u = new Usepri();
    u.getuname();              // 僅能呼叫 public 方法
    // u.getuid() 編譯錯誤
}

關鍵釐清

  • 書中「自己的類」≠ 當前執行的類,而是定義該成員的類別本身(父類)。
  • 子類繼承父類非 private 成員,視同擁有該成員,可直接存取 protected。
  • 例 1 中 Person4 與 Usepro 同套件,故可存取 protected;若不同套件則需透過子類存取。

原答案核心

「其實你說的是子類和父類之間的關系吧... 繼承誰,誰就是父類」

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved