Java面向對象編程中,封裝和繼承是兩個重要的概念。下面是一些Java封裝和繼承練習題:
// 練習1:封裝 // 設計一個類,表示一個人,要求這個類有名字、性別、年齡三個屬性,這三個屬性都是私有的。 // 提供get()和set()方法對屬性進行讀寫操作。 public class Person { private String name; private String gender; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } // 練習2:繼承 // 設計一個類,表示一個學生,要求這個類繼承上面的Person類,并增加一個學號屬性。 // 提供get()和set()方法對屬性進行讀寫操作。 public class Student extends Person { private String studentId; public String getStudentId() { return studentId; } public void setStudentId(String studentId) { this.studentId = studentId; } } // 練習3:重寫 // 在上面的Student類中,重寫toString()方法,返回學生的姓名、學號、年齡、性別。 public class Student extends Person { private String studentId; public String getStudentId() { return studentId; } public void setStudentId(String studentId) { this.studentId = studentId; } @Override public String toString() { return "姓名:" + getName() + ",學號:" + studentId + ",年齡:" + getAge() + ",性別:" + getGender(); } } // 練習4:多態 // 在上面的Person類中,增加一個study()方法,表示這個人正在學習。 // 在上面的Student類中,重寫study()方法,表示學生正在學習。 public class Person { private String name; private String gender; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void study() { System.out.println("正在學習。"); } } public class Student extends Person { private String studentId; public String getStudentId() { return studentId; } public void setStudentId(String studentId) { this.studentId = studentId; } @Override public void study() { System.out.println("正在上課。"); } }