Abstraction của OOP bật mí những đặc tính buộc phải thiết, giấu đi thông tin không quan liêu trọng. Abstraction chỉ hoàn toàn có thể đạt được thông qua Abstract Class. Hãy cùng tò mò Abstract Class là gì nhé. 


1. Abstract Class là gì?

Abstract Class tức là một lớp trừu tượng. Abstract Class là 1 trong những loại phần trong OOP – Lập trình hướng đối tượng. Abstract Class khai báo một hay nhiều method trừu tượng. Chúng hoàn toàn có thể có cả method trừu tượng cùng method cố gắng thể. Một lớp thông thường không thể bao gồm method trừu tượng. Điều này có nghĩa là một abstract class đề nghị chứa ít nhất một method trừu tượng.

Bạn đang xem: Abstract class là gì

Một method trừu tượng là một trong method được khai báo không tồn tại triển khai (không bao gồm dấu ngoặc nhọn và kết thúc là một lốt chấm phẩy).

Một Abstract Class chẳng thể tạo đối tượng người tiêu dùng nhưng có thể bao hàm lớp con. Khi một lớp trừu tượng bao hàm các lớp con, lớp bé thường cung ứng triển khai cho tất cả các method trừu tượng của lớp cha. Không tính ra, lớp trừu tượng hoàn toàn có thể có trường cồn và ngôi trường tĩnh. Mặc dù nhiên, ví như lớp bé không thực thi cho lớp cha, nó cũng sẽ là một tờ trừu tượng.

2. Abstract Class và Interface

Abstract Class tương đương với Interface. Chúng ta đều quan trọng tạo đối tượng cho chúng. Chúng đều hoàn toàn có thể chứa những method được khai báo có hoặc không có triển khai. Tuy nhiên, với Abstract Class, bạn cũng có thể khai báo phần đông trường không tĩnh. Chúng ta có thể xác định những method công khai, method được bảo vệ và method cụ thể riêng tư.

Với Interface, những trường đều tự động hóa là công khai và tĩnh. Các method chúng ta khai báo hay quan niệm (là phần đa method mặc định) những là công khai. Ngoại trừ ra, chúng ta chỉ có thể extend một lớp, dù lớp đó tất cả trừu tượng giỏi không. Nhưng chúng ta lại hoàn toàn có thể triển khai giới hạn max số lượng Interface.

3. Thực hiện Abstract Class cùng Interface

Bạn nên lưu ý đến sử dụng Abstract Class trong những trường phù hợp sau:

Bạn muốn chia sẻ code thân một vài lớp có contact thân thiết.Bạn mong rằng rằng phần đông lớp extend Abstract Class của công ty có bình thường nhiều method hoặc ngôi trường hoặc yêu thương cầu truy vấn bộ kiểm soát và điều chỉnh thay vì công khai minh bạch bộ điều chỉnh. (Ví dụ là được đảm bảo hoặc riêng tư).Bạn ý muốn khai báo trường đụng hoặc ngôi trường tĩnh. Điều này được cho phép bạn tư tưởng method có thể tiếp cận với điều chỉnh đặc điểm của đối tượng.

Với Interface, bạn nên thực hiện khi:

Bạn mong muốn rằng rất nhiều lớp không liên quan sẽ thực hiện interface của bạn. Ví dụ, Interface Comparable cùng Cloneable được triển khai bởi số đông lớp không liên quan.Bạn muốn rõ ràng hóa hành động của một loại dữ liệu nhất định, dẫu vậy không bận lòng đến ai sẽ tiến hành hành vi.Bạn mong muốn tận dụng những loại kế thừa (inheritance).

Xem thêm: Con Gái Nên Học Nghề Gì Cho Nữ Không Bằng Đại Học Nghề Gì Nếu Không Học Đại Học?

4. Lấy ví dụ như về Abstract Class

Trường hợp đề xuất dùng Abstract Class

Trong một trong những phần mềm vẽ phía đối tượng, chúng ta có thể vẽ hình tròn, hình chữ nhật, mặt đường kẻ, đường cong Bezier… Những đối tượng này này đều phải có các đặc điểm nhất định (như vị trí, định hướng, màu con đường viền, màu trong) và các hành vi (như di chuyển, quay, kiểm soát và điều chỉnh kích thước, vẽ).

Một vài đặc điểm và hành vi của những đối tượng người sử dụng này là tương đương nhau (như vị trí, màu viền, di chuyển). Số khác yêu cầu phần đa triển khai khác biệt như điều chỉnh size hay vẽ. Toàn bộ các GraphicObject phải có khả năng vẽ giỏi điều chỉnh kích thước của nó, chỉ không giống nhau ở phương pháp chúng tiến hành việc đó.

Sử dụng Abstract Class

Đây là một trong trường hợp hoàn hảo nhất để sử dụng lớp cha là Abstract Class. Chúng ta cũng có thể tận dụng hầu như điểm tương tự nhau với khai báo các đối tượng này đều thừa kế từ đối tượng thân phụ là GraphicObject. Tế bào hình tiếp sau đây thể biểu hiện rõ mối tương tác này:

*

Đầu tiên, bạn khai báo một Abstract Class, sinh sống đây chính là GraphicObject, để cung ứng các trở thành viên và những method được sử dụng bởi toàn bộ các lớp con. Đó hoàn toàn có thể là vị trí lúc này và method moveTo. GraphicObject cũng đề nghị khai báo những method trừu tượng cho phần method, ví như draw tốt resize để hoàn toàn có thể triển khai đầy đủ lớp con. Mặc dù các method này phải được thực thi một giải pháp khác nhau. Lớp cha GraphicObject trông như sau:

Mỗi lớp nhỏ không trừu tượng của GraphicObject, như Circle cùng Rectangle, phải cung cấp triển khai cho những method draw cùng resize:

Khai báo lớp không trừu tượng trực thuộc một lớp phụ thân Abstract Class

Got It mong muốn rằng nội dung bài viết trên đây sẽ cung cấp cho chính mình một loại nhìn không thiếu hơn về Abstract Class là gì. Happy Coding!

Got It Vietnam – Tham khảo: Guru99, Oracle, W3schools


Nếu các bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và bài viết liên quan về tiến trình tuyển dụng trên đây.