Tính kế thừa và hàm thuần ảo trong lập trình hướng đối tượng
Trong lập trình hướng đối tượng, tính kế thừa và hàm thuần ảo là hai khái niệm quan trọng giúp chúng ta xây dựng các lớp con dựa trên lớp cơ sở và triển khai các phương thức theo cách riêng của từng lớp con. Trên cơ sở yêu cầu bài viết, chúng ta sẽ tìm hiểu về tính kế thừa và hàm thuần ảo thông qua ví dụ về các lớp "Vehicle", "Car", "Truck" và "Motorcycle". Đầu tiên, chúng ta định nghĩa lớp cơ sở "Vehicle" với các thuộc tính như "make" (hãng sản xuất), "model" (mẫu xe) và "year" (năm sản xuất). Chúng ta cũng thêm vào hàm khởi tạo và phương thức hiển thị thông tin cơ bản của lớp này. Ngoài ra, chúng ta còn có một hàm thuần ảo "display()" để được triển khai trong các lớp con. Tiếp theo, chúng ta tạo lớp con "Car" dẫn xuất từ lớp "Vehicle" và thêm thuộc tính "doorCount" (số lượng cửa). Trong lớp "Car", chúng ta ghi đè phương thức "display()" để hiển thị thông tin chi tiết của xe hơi. Bên cạnh đó, chúng ta cũng tạo hai lớp con khác từ lớp "Vehicle". Lớp "Truck" có thuộc tính "payloadCapacity" (sức chứa tải) và lớp "Motorcycle" có thuộc tính "hasSidecar" (có gắn xe phụ hay không). Cả hai lớp con này cũng có hàm khởi tạo và phương thức "display()" được ghi đè để hiển thị thông tin tương ứng. Sau đó, chúng ta thực hiện chồng toán tử xuất "<<" cho lớp "Vehicle" và các lớp con để in ra thông tin chi tiết của mỗi loại xe. Điều này giúp chúng ta có thể dễ dàng hiển thị thông tin của các đối tượng trong mảng. Cuối cùng, chúng ta tạo một mảng các đối tượng "Vehicle" bao gồm các đối tượng thuộc lớp "Vehicle", "Car", "Truck" và "Motorcycle". Sử dụng vòng lặp, chúng ta gọi phương thức "display()" của mỗi đối tượng trong mảng để chứng minh tính đa hình trong lập trình hướng đối tượng. Đồng thời, chúng ta cũng sử dụng một hàm để thêm các đối tượng xe vào mảng và in ra thông tin của chúng thông qua chồng toán tử "<<". Điều này giúp chúng ta thấy rõ sự linh hoạt và khả năng tái sử dụng của tính kế thừa và hàm thuần ảo trong lập trình hướng đối tượng. Tóm lại, tính kế thừa và hàm thuần ảo là hai khái niệm quan trọng trong lập trình hướng đối tượng. Chúng giúp chúng ta xây dựng các lớp con dựa trên lớp cơ sở và triển khai các phương thức theo cách riêng của từng lớp con. Qua ví dụ về các lớp "Vehicle", "Car", "Truck" và "Motorcycle", chúng ta đã thấy được cách sử dụng tính kế thừa và hàm thuần ảo để tạo ra các đối tượng xe và hiển thị thông tin chi tiết của chúng.