Abstraction là gì

  -  

Abstraction của OOP tiết lộ những đặc tính buộc phải thiết, cất đi thông tin không quan tiền trọng. Abstraction chỉ rất có thể đạt được trải 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à một trong loại phần bê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 với method cầm thể. Một lớp bình thường không thể bao gồm method trừu tượng. Điều này tức là một abstract class đề nghị chứa ít nhất một method trừu tượng.

Bạn đang xem: Abstraction là gì

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

Một Abstract Class cấp thiết 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 nhỏ thường hỗ trợ triển khai cho tất cả các method trừu tượng của lớp cha. Ngoài ra, lớp trừu tượng có thể có trường rượu cồn và trường tĩnh. Tuy nhiên, nếu lớp bé không triển khai cho lớp cha, nó cũng trở thành là một tấm trừu tượng.

2. Abstract Class với Interface

Abstract Class giống như với Interface. Bạn đều cần thiết tạo đối tượng người dùng cho chúng. Bọn 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, cùng với Abstract Class, chúng ta cũng có thể khai báo những trường ko tĩnh. Chúng ta cũng có thể xác định các method công khai, method được đảm bảo và method rõ ràng riêng tư.

Xem thêm: Guitar Acoustic Là Gì ? Bản Chất Của Nhạc Acoustic Âm Nhạc Sâu Lắng, Chạm Trái Tim Người Nghe

Với Interface, các trường đều auto là công khai minh bạch và tĩnh. Những method bạn khai báo hay định nghĩa (là đa số method khoác định) đông đảo là công khai. Xung quanh ra, bạn chỉ có thể extend một lớp, dù lớp đó tất cả trừu tượng giỏi không. Nhưng bạn lại hoàn toàn có thể triển khai không giới hạn số lượng Interface.

3. Sử dụng Abstract Class với Interface

Bạn nên để ý đến sử dụng Abstract Class trong số những trường thích hợp sau:

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

Với Interface, các bạn nên áp dụng khi:

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

Xem thêm: Var Là Gì ? Var Hoạt Động Như Thế Nào? Ví Dụ Về Tình Huống Var?

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

Trường hợp yêu cầu dùng Abstract Class

Trong một trong những phần mềm vẽ phía đối tượng, bạn cũng có thể vẽ hình tròn, hình chữ nhật, đường kẻ, mặt đường cong Bezier… Những đối tượng người tiêu dùng này này đều sở hữu các đặc thù nhất định (như vị trí, định hướng, màu đường viền, color trong) và những 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 thù và hành vi của những đối tượng người sử dụng này là giống như nhau (như vị trí, màu viền, di chuyển). Số khác yêu cầu hầu như triển khai không giống nhau như điều chỉnh kích cỡ hay vẽ. Toàn bộ các GraphicObject phải có công dụng vẽ tốt điều chỉnh size của nó, chỉ không giống nhau ở biện pháp chúng tiến hành việc đó.

Sử dụng Abstract Class

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

*

Đầu tiên, chúng ta khai báo một Abstract Class, sinh sống đây chính là GraphicObject, để hỗ trợ các trở thành viên và những method được thực hiện bởi tất cả các lớp con. Đó rất có thể là vị trí hiện tại và method moveTo. GraphicObject cũng bắt buộc khai báo các method trừu tượng cho phần method, ví dụ như draw tuyệt resize để có thể triển khai phần lớn lớp con. Mặc dù các method này nên được tiến hành một phương pháp khác nhau. Lớp phụ vương GraphicObject trông như sau:

Mỗi lớp con không trừu tượng của GraphicObject, như Circle với Rectangle, phải cung ứng triển khai cho các method draw và resize:

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

Got It hy vọng rằng nội dung bài viết trên đây vẫn cung cấp cho chính mình một chiếc nhìn vừa đủ hơn về Abstract Class là gì. Happy Coding!

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


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