Lớp trừu tượng vs Lớp bê tông
Hầu hết các ngôn ngữ lập trình hướng đối tượng hiện đại phổ biến như Java và C # đều dựa trên lớp. Họ đạt được các khái niệm hướng đối tượng như đóng gói, kế thừa và đa hình thông qua việc sử dụng các lớp. Các lớp học là một đại diện trừu tượng của các đối tượng trong thế giới thực. Các lớp có thể cụ thể hoặc trừu tượng tùy thuộc vào mức độ thực hiện các chức năng phương thức của chúng. Một lớp cụ thể hoàn toàn thực hiện tất cả các phương thức của nó. Một lớp trừu tượng có thể được coi là một phiên bản giới hạn của một lớp thông thường (cụ thể), trong đó nó có thể chứa các phương thức được thực hiện một phần. Thông thường, các lớp cụ thể được gọi là các lớp (chỉ).
Lớp bê tông là gì?
Lớp mặc định là một lớp cụ thể. Từ khóa lớp được sử dụng để xác định các lớp (ví dụ: trong Java). Và thông thường chúng được gọi đơn giản là các lớp (không có tính từ cụ thể). Các lớp cụ thể mô tả biểu diễn khái niệm của các đối tượng trong thế giới thực. Các lớp có các thuộc tính được gọi là thuộc tính. Các thuộc tính được thực hiện như các biến toàn cục và cá thể. Các phương thức trong các lớp đại diện hoặc định nghĩa hành vi của các lớp này. Các phương thức và thuộc tính của các lớp được gọi là các thành viên của lớp. Thông thường, đóng gói đạt được bằng cách đặt các thuộc tính riêng tư, đồng thời tạo các phương thức công khai có thể được sử dụng để truy cập các thuộc tính đó. Một đối tượng là ví dụ của một lớp. Kế thừa cho phép người dùng mở rộng các lớp (được gọi là lớp phụ) từ các lớp khác (được gọi là siêu lớp). Đa hình cho phép lập trình viên thay thế một đối tượng của một lớp thay cho một đối tượng của siêu lớp của nó. Thông thường, các danh từ tìm thấy trong định nghĩa vấn đề trực tiếp trở thành các lớp trong chương trình. Và tương tự, động từ trở thành phương thức. Công khai, riêng tư và được bảo vệ là các công cụ sửa đổi truy cập điển hình được sử dụng cho các lớp.
Lớp trừu tượng là gì?
Các lớp trừu tượng được khai báo bằng từ khóa Trừu tượng (ví dụ: trong Java,). Thông thường, các lớp Trừu tượng, còn được gọi là Các lớp cơ sở trừu tượng (ABC), không thể được khởi tạo (một thể hiện của lớp đó không thể được tạo). Vì vậy, các lớp Trừu tượng chỉ có ý nghĩa nếu ngôn ngữ lập trình hỗ trợ kế thừa (khả năng tạo các lớp con từ việc mở rộng một lớp). Các lớp trừu tượng thường đại diện cho một khái niệm hoặc thực thể trừu tượng với một phần hoặc không thực hiện. Do đó, các lớp Trừu tượng đóng vai trò là các lớp cha mà từ đó các lớp con được dẫn xuất để lớp con sẽ chia sẻ các tính năng chưa hoàn chỉnh của lớp cha và chức năng có thể được thêm vào để hoàn thành chúng.
Các lớp trừu tượng có thể chứa các phương thức Trừu tượng. Các lớp con mở rộng một lớp trừu tượng có thể thực hiện các phương thức Trừu tượng (được kế thừa) này. Nếu lớp con thực hiện tất cả các phương thức Trừu tượng như vậy, nó sẽ trở thành một lớp cụ thể. Nhưng nếu không, lớp con cũng trở thành lớp Trừu tượng. Tất cả điều này có nghĩa là, khi lập trình viên chỉ định một lớp là Tóm tắt, cô ấy nói rằng lớp đó sẽ không hoàn chỉnh và nó sẽ có các phần tử cần được hoàn thành bởi các lớp con kế thừa. Đây là một cách hay để tạo hợp đồng giữa hai lập trình viên, giúp đơn giản hóa các nhiệm vụ trong phát triển phần mềm. Lập trình viên, người viết mã để kế thừa, cần tuân theo chính xác các định nghĩa phương thức (nhưng tất nhiên có thể có cách thực hiện của riêng cô ấy).
Sự khác biệt giữa Lớp trừu tượng và Lớp bê tông là gì?
Các lớp trừu tượng thường có một phần hoặc không thực hiện. Mặt khác, các lớp cụ thể luôn luôn thực hiện đầy đủ hành vi của nó. Không giống như các lớp cụ thể, các lớp trừu tượng không thể được khởi tạo. Do đó, các lớp trừu tượng phải được mở rộng để làm cho chúng hữu ích. Các lớp trừu tượng có thể chứa các phương thức trừu tượng, nhưng các lớp cụ thể thì không thể. Khi một lớp trừu tượng được mở rộng, tất cả các phương thức (cả trừu tượng và cụ thể) đều được kế thừa. Lớp kế thừa có thể thực hiện bất kỳ hoặc tất cả các phương thức. Nếu tất cả các phương thức trừu tượng không được thực hiện, thì lớp đó cũng trở thành một lớp trừu tượng.