Bài tập kế thừa trong java có lời giải năm 2024

Hôm nay mình sẽ giải thích chi tiết về dạng bài tập kế thừa trong java một cách cụ thể qua ví dụ sau đây:

Tạo một lớp Person lưu trữ các thông tin sau đây [ Tên, giới tính, địa chỉ,ngay sinh] Tạo một lớp Student kế thừa từ lớp person lưu trữ các thông tin như dưới đây: Mã sinh viên,điểm trung bình, email Viết một phương thức nhập thông tin của student Viết một phương thức hiện thị thông tin của student Viết phương trình xem xét có sinh viên nào được học bổng không? điểm trung bình hơn 8.0 sẽ được hổng bổng Khai báo class parent Person

class Person{ protected String name; protected String sex; protected String adrress; protected String ngaysinh; public void intputPerson[]{ Scanner scanner = new Scanner[System.in]; System.out.println["Nhap Ten :"]; this.name = scanner.nextLine[]; System.out.println["Nhap gioi tinh"]; this.sex = scanner.nextLine[]; System.out.println["Nhap dia chi"]; this.adrress = scanner.nextLine[]; System.out.println["Nhap ngay sinh"]; this.ngaysinh = scanner.nextLine[]; } public void showPerson[]{ System.out.println["Ho Ten : " +this.name + " Gioi Tinh : " +this.sex +" Dia chi : " +this.adrress +" Ngay sinh : " +this.ngaysinh]; } }

Trong đó: Có 4 biến bao gồm [ ten,gioitinh,diachi,ngaysing] và có 2 phương thức: intputPerson : Là phương thức nhập thông tin showPerson : Xuất hiện thông tin Tiếp thep khai báo một lớp student được kế thừa từ lớp Person

class Student extends Person{ protected String masv; protected float diemtrungbinh; protected String email; public void intPutStudent[]{ Scanner input = new Scanner[System.in]; System.out.println["Nhap ma sinh vien"]; this.masv = input.nextLine[]; System.out.println["Nhap diem trung binh"]; this.diemtrungbinh = input.nextFloat[]; System.out.println["Nhap email"]; this.email = input.nextLine[]; } public void showStudent[]{ System.out.println["Ma sinh vien : " +this.masv +" Diem trung binh " + this.diemtrungbinh]; } public void kiemtrahocbong[]{ if[this.diemtrungbinh >=8]{ System.out.println["Duoc hoc bong"]; }else{ System.out.println["Khong duoc hoc bong"]; } } }

Lớp Person có 3 biến cần lưu trữ,và 3 phương thức java intPutStudent : Nhập thông tin của sinh viên đó. showStudent : Xuất thông tin của sinh viên kiemtrahocbong : Phương thức kiểm tra học bổng Hàm khởi tạo để thực hiện chương trình như sau:

public class BT1 { public static void main[String []args]{ Student person = new Student[]; person.intputPerson[]; person.intPutStudent[]; person.showPerson[]; person.showStudent[]; person.kiemtrahocbong[]; } }

Kết quả:

Kế thừa trong lập trình [Inheritance] có nghĩa là một lớp sẽ thừa hưởng lại những thuộc tính, phương thức từ lớp khác.

Việc sử dụng kế thừa nhằm tái sử dụng code đã viết trước đó, thuận tiện trong việc bảo trì và nâng cấp chương trình.

Khai báo và sử dụng kế thừa

Cú pháp:

class extends { }

Ví dụ: ta có 2 lớp Person và Student như sau

Ta thấy 2 lớp Person và Student có chung thuộc tính và phương thức. Ta sẽ để nguyên code ở lớp Person lại:

public class Person { public String name; public int age; public float height; public Person[String name, int age, float height] {

this.name = name;  
this.age = age;  
this.height = height;  
} public void getInfo[] {
System.out.println["Name:"+this.name];  
System.out.println["Age:"+this.age];  
System.out.println["Height:"+this.height];  
} }

Bây giờ ta chỉ cần cho lớp Student kế thừa Person như sau:

public class Student extends Person{ public Student[String name, int age, float height] {

super[name, age, height];  
} }

Trong phương thức khởi tạo Student, ta sẽ dùng từ khóa super để cho lớp con truy cập các những thứ liên quan đến lớp cha. Như ví dụ trên thì ta dùng super[] để gọi phương thức khởi tạo lớp cha.

Tiếp theo, ta thử khởi tạo đối tượng Student và gọi phương thức getInfo[]:

public class HelloWorld { public static void main[String[] args] {

Student a = new Student["Chau", 21, 1.7f];  
a.getInfo[];  
} }

Theo kết quả, đối tượng a sử dụng được phương thức getInfo[] từ lớp cha

Chú ý về kế thừa

Slogan đặc trưng kế thừa: “Cha có thì con có, con có chưa chắc cha đã có”

Tính chất kế thừa các ngôn ngữ lập trình hướng đối tượng đa số đều tương đồng với nhau về tính chất. Có thể các bạn không nhớ khái niệm và cú pháp, nhưng chỉ cần hiểu câu nói trên là bạn đã hiểu về kế thừa.

Ví dụ: Như ví dụ trước thì lớp Student kế thừa Person, ngoài những thuộc tính kế thừa ra, ta muốn thêm thuộc tính universityName cho Student

public class Student extends Person { public String universityName; public Student[String name, int age, float height, String universityName] {

super[name, age, height];  
this.universityName = universityName;  
} }

Như vậy theo đúng tính chất: lớp cha Person có name, age, height thì lớp con Student có. Lớp con Student có universityName thì lớp cha Person không có.

Tận dụng từ khóa super để bảo trì và nâng cấp code

Từ khóa super mục đích chính truy cập những phương thức của lớp cha. Trong việc phát triển phần mềm, ta cần nâng cấp chương trình. Việc tận dụng từ khóa super sẽ giúp ta vừa tận dụng những dòng code trước đó và viết tiếp code mới.

Ví dụ: ta thấy phương thức getInfo[] chỉ trả về thông tin name, age, height. Bây giờ, ta sẽ nâng cấp phương thức có thể trả về thông tin universityName ở lớp Student

public class Student extends Person { public String universityName; public Student[String name, int age, float height, String universityName] {

super[name, age, height];  
this.universityName = universityName;  
} public void getInfo[] {
super.getInfo[];  
System.out.println["University Name:"+this.universityName];  
} }

Ta thử khởi tạo để kiểm tra:

public class HelloWorld { public static void main[String[] args] {

Student a = new Student["Chau", 21, 1.7f, "UTE"];  
a.getInfo[];  
} }

Flow của chương trình có thể hiểu như sau:

Kết

Như vậy chúng ta đã tìm hiểu kế thừa trong lập trình hướng đối tượng

Ở bài sau, Kteam sẽ giới thiệu đến bạn về SETTER VÀ GETTER TRONG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Kế thừa trong lập trình hướng đối tượng dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên like và share để ủng hộ Kteam và tác giả nhé!

Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Chủ Đề