Tóm Tắt
Dẫn nhập
Trong bài trước, Kteam đã giải thích các bạn từ khóa THIS. Tiếp tục ở bài này, chúng ta sẽ tìm hiểu tính Kế thừa trong lập trình hướng đối tượng.
Nội dung
Để đọc hiểu bài này, tốt nhất những bạn nên có kỹ năng và kiến thức cơ bản về những phần sau :
Bài này chúng ta sẽ tìm hiểu những vấn đề sau:
Bạn đang đọc: Kế thừa trong lập trình hướng đối tượng | How Kteam
- Khái niệm kế thừa
- Khai báo và sử dụng kế thừa
- Chú ý về kế thừa
Khái niệm kế thừa
Kế thừa có nghĩa là thừa hưởng lại, ví dụ như tài sản của ba mẹ sẽ được giao lại cho con cái.
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 mục đích tái sử dụng code đã viết trước đó, thuận tiện trong việc bảo dưỡng và tă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 những ngôn từ lập trình hướng đối tượng người dùng đa phần đều tương đương với nhau về đặc thù. Có thể những 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 tiêu chính truy vấn những phương pháp của lớp cha. Trong việc tăng trưởng ứng dụng, ta cần tă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 hoàn toàn có thể hiểu như sau :
Kết
Như vậy tất cả chúng ta đã khám phá kế thừa trong lập trình hướng đối tượng người dù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ó”.
Thảo luận
Nếu bạn có bất kể khó khăn vất vả hay vướng 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 và ĐÁP trên thư viện Howkteam. com để nhận được sự tương hỗ từ hội đồng .
Source: https://final-blade.com
Category: Kiến thức Internet