簡體   English   中英

如何在不更改超類的情況下從子類中的超類訪問私有變量? (爪哇)

[英]How to access private variable from Superclass in Subclass without changing Superclass? (Java)

我現在正在為 class 做作業,它要求我在它的一個子類中使用來自超類的私有變量,但我不知道該怎么做。 我發現了很多關於更改可行的超類的信息,但是作業說我不能編輯超類,只能編輯它的子類。 這可能嗎?

就上下文而言,任務是根據不同員工的每周收入並打印出他們的信息(名字和姓氏、員工 ID、position 和收入)。 名字、姓氏和員工 ID 是私有的,我需要在子類中重寫超類中的一個方法。

來自超類的代碼:

public String toString(){
   return "Name: " + firstName + " " + lastName + ", ID: " + employeeId;
}

來自子類的代碼(我正在寫)

//  Override public String toString() here
/*public String toString(){
   return ("Name: " + firstName + " " + lastName + ", ID: " + employeeId + " Position: Boss");
}*/

我嘗試在子類中使用 get 和 set,但這顯然不起作用。

如果你只需要toString() output,你可以使用super.toString()

    public String toString() {
        return super.toString() + " earnings: " +earnings;
    }

反射 API 在這里提供幫助。 在你的繼承class中,使用:

Field field = super
  .getClass()
  .getDeclaredField("firstName");
field.setAccessible(true);
String firstname = (String) field.get(super);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM