簡體   English   中英

Java 中的基本繼承幫助

[英]Basic Inheritance help in Java

我是 Java 新手,我正在努力增加我的知識。 我目前被困在涉及基本繼承的作業上。 這是我的代碼,我的輸出將使用不同的名稱進行測試。 我似乎根本無法獲得 iutput。 我在 Onheritance 上查找過視頻,但似乎對我的情況沒有幫助。 我究竟做錯了什么?

public class StudentDerivationFromPerson {
   public static void main (String [] args) {
      StudentData courseStudent = new StudentData();

      courseStudent.printAll();
      System.out.println(", ID: " + courseStudent.setID());

   }
}

這是整個代碼

// ===== Code from file PersonData.java =====
public class PersonData {
   private int ageYears;
   private String lastName;

   public void setName(String userName) {
      lastName  = userName;
   }

   public void setAge(int numYears) {
      ageYears = numYears;
   }

   // Other parts omitted

   public void printAll() {
      System.out.print("Name: " + lastName);
      System.out.print(", Age: "  + ageYears);
   }
}
// ===== end =====

// ===== Code from file StudentData.java =====
public class StudentData extends PersonData {
   private int idNum;

   public void setID(int studentId) {
      idNum = studentId;
   }

   public int getID() {
      return idNum;
   }
}
// ===== end =====

// ===== Code from file StudentDerivationFromPerson.java =====
public class StudentDerivationFromPerson {
   public static void main (String [] args) {
      StudentData courseStudent = new StudentData();

      courseStudent.printAll();
      System.out.println(", ID: " + courseStudent.setID());

   }
}
// ===== end =====

方法printAll應該是被覆蓋在StudentData類,使用呼叫super.printAll()來重用和打印數據的人:

public class StudentData extends PersonData {
    private int idNum;

    public void setID(int studentId) {
        idNum = studentId;
    }

    public int getID() {
        return idNum;
    }

    @Override
    public void printAll() {
        super.printAll();
        System.out.println(", ID: " + idNum);
    }
}

那么下面的例子

public class StudentDerivationFromPerson {
    public static void main (String [] args) {
        StudentData courseStudent = new StudentData();
        courseStudent.setName("Doe");
        courseStudent.setAge(21);
        courseStudent.setID(1001);
        courseStudent.printAll();
    }
}

印刷:

Name: Doe, Age: 21, ID: 1001

暫無
暫無

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

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