Bài viết hôm nay chúng ta cùng tìm hiểu về một số đặc điểm quan trọng trong lập trình hướng đối tượng với Java.
Là quá trình lớp con định nghĩa lại một hành vi được kế thừa từ lớp cha, để cho phù hợp với lớp con. Trong quá trình này, lớp con sẽ ghi đè (override) một method được kế thừa từ lớp cha.
Chú ý: nếu có khai báo access modifier, thì method trong lớp con phải có mức truy cập bằng hoặc cao hơn so với method của lớp cha được ghi đè.
Ví dụ:
Ở đây ta định nghĩa lớp Animal là lớp cha, và có một hành vi là eat().
Sau đó ta định nghĩa lớp Lyon, là lớp con của lớp Animal. Trong lớp Lyon, ta đã ghi đè (định nghĩa lại) nội dung cho hành vi eat() được kế thừa từ lớp cha. Quá trình này được gọi là method overriding.
3) Các mối quan hệ giữa các đối tượng trong Java
Các đối tượng trong OOP sẽ có hai mối quan hệ với nhau, bao gồm:
- IS-A relationship: Đây là một mối quan hệ Là –Một, nghĩa là một đối tượng thuộc lớp con sẽ Là Một kiểu đối tượng thuộc lớp cha. Thông thường, lớp cha sẽ thể hiện một tập hợp thực thể tổng quát hơn, rộng lớn hơn, còn lớp con sẽ thể hiện một tập hợp các thực thể chuyên biệt hơn, hẹp hơn.
Ví dụ:
Ở đây ta có lớp Object nằm trên cùng trong cây phân cấp, và lớp Laptop là lớp con của lớp Object, vì vậy ta có thể nói một Laptop là một kiểu của Object. Tương tự như vậy, với lớp Dell là lớp con của lớp Laptop, ta cũng có thể nói, một đối tượng Dell là một kiểu Laptop.
- HAS-A relationship: Đây là mối quan hệ Có-Một, mối quan hệ này xảy ra khi trong định nghĩa của một lớp có chứa các tham chiếu của các lớp khác. Đây là quan hệ chứa lẫn nhau giữa các lớp.
Ví dụ: Ở đây ta có định nghĩa của lớp HardDisk, và định nghĩa của lớp UseDell. Trong lớp UseDell ta có khởi tạo một đối tượng của lớp HardDisk, vì vậy ta có thể nói lớp UseDell có mối quan hệ HAS-A với lớp HardDisk.
Tony Hùng Cường