Introduction
Trước khi lặn sâu vào sự khác biệt giữa lớp trừu tượng và giao diện, bạn phải hiểu một điều cơ bản: đây là hai lớp hoàn toàn khác nhau không thể được sử dụng thay thế cho nhau., you must understand one basic thing: these are two completely different classes that cannot be used as an alternative to one another.
Các lớp giao diện hoàn toàn làm trống vỏ trong khi mong đợi các lớp con sẽ thực hiện mọi thứ cho chúng. Các lớp trừu tượng không chỉ chứa phần thông tin phổ biến giữa các vỏ bên trong mà còn mong các lớp con bên trong điền vào các khoảng trống.
Hãy để chúng tôi lặn sâu hơn một chút để thực sự hiểu được sự khác biệt một cách tinh tế.
Nếu bạn muốn đọc về các câu hỏi về mảng PHP thì bạn có thể truy cập ở đây. Điều này sẽ giúp bạn bẻ khóa các cuộc phỏng vấn PHP của bạn.
Lớp giao diện
Như chúng ta đã biết, một giao diện thực sự được xác định bởi một từ khóa giao diện trong đó tất cả các phương thức là trừu tượng. Ngoài ra, tất cả các phương thức được khai báo trong loại lớp này phải được khai báo ở nơi công cộng, phản ánh bản chất thực sự của một giao diện.
Hãy giúp đỡ để chứng minh rằng với một ví dụ:
- interface Logger { Logger {
- public public
- function execute[]; function execute[];
- }
Như bạn có thể thấy ở trên, trong giao diện, thân phương thức không được xác định. Chỉ có tên và các tham số đang được xác định. Bây giờ, chúng ta hãy chuyển sang lớp trừu tượng.
Lớp học trừu tượng
Trong PHP, một lớp trừu tượng là một lớp được thực hiện một phần bởi bất kỳ nhà phát triển nào. Nó có thể chứa ít nhất một phương thức trừu tượng về cơ bản là một phương thức mà không có bất kỳ mã bằng văn bản nào. Nó chỉ chứa tên và các tham số và đã được đánh dấu là Tóm tắt.
Theo định nghĩa, một lớp trừu tượng chỉ đơn giản là một định nghĩa hàm có mục đích phục vụ lập trình viên bằng cách nói với họ phương pháp trong câu hỏi phải được thực hiện trong một lớp con.
Dưới đây là một ví dụ để chứng minh lớp trừu tượng:
- abstract class AbstractClass { class AbstractClass {
- abstract protected abstract protected
- function getValue[]; function getValue[];
- public public
- function printOut[] { function printOut[] {
- print $this - > getValue[]. this - > getValue[].
- & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;"\n";
- }
- }
Bây giờ bạn đã làm quen với một lớp giao diện trừu tượng, đã đến lúc đi sâu vào sự khác biệt của họ, từng bước.
Ở đây, một bảng mô tả sự khác biệt giữa lớp trừu tượng và giao diện trong PHP.
Lớp giao diện | Lớp học trừu tượng |
Trong PHP, một lớp trừu tượng là một lớp được thực hiện một phần bởi bất kỳ nhà phát triển nào. Nó có thể chứa ít nhất một phương thức trừu tượng về cơ bản là một phương thức mà không có bất kỳ mã bằng văn bản nào. Nó chỉ chứa tên và các tham số và đã được đánh dấu là Tóm tắt. | Theo định nghĩa, một lớp trừu tượng chỉ đơn giản là một định nghĩa hàm có mục đích phục vụ lập trình viên bằng cách nói với họ phương pháp trong câu hỏi phải được thực hiện trong một lớp con. |
Dưới đây là một ví dụ để chứng minh lớp trừu tượng: | & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; |
Bây giờ bạn đã làm quen với một lớp giao diện trừu tượng, đã đến lúc đi sâu vào sự khác biệt của họ, từng bước. | Ở đây, một bảng mô tả sự khác biệt giữa lớp trừu tượng và giao diện trong PHP. |
Lớp giao diện hỗ trợ nhiều tính năng kế thừa | Lớp trừu tượng không hỗ trợ nhiều kế thừa. |
Điều này không chứa một thành viên dữ liệu. | Lớp trừu tượng có chứa một thành viên dữ liệu. |
Giao diện không cho phép container. | Lớp trừu tượng hỗ trợ các container. |
Conclusion
Một lớp giao diện chỉ chứa các thành viên chưa hoàn chỉnh đề cập đến chữ ký của thành viên.
Ngoài ra, chỉ muốn thêm ở đây chỉ vì bất kỳ ngôn ngữ OO nào khác có một số loại giao diện và sự trừu tượng không có nghĩa là chúng có cùng ý nghĩa và mục đích như trong PHP. Việc sử dụng trừu tượng/giao diện hơi khác nhau trong khi các giao diện trong PHP thực sự không có chức năng thực. Chúng chỉ được sử dụng cho các lý do liên quan đến ngữ nghĩa và sơ đồ. Vấn đề là có một dự án linh hoạt nhất có thể, có thể mở rộng và an toàn cho các phần mở rộng trong tương lai bất kể nhà phát triển sau này có kế hoạch sử dụng hoàn toàn khác hay không.
Nếu tiếng Anh của bạn không phải là người bản địa, bạn có thể tìm kiếm sự trừu tượng và giao diện thực sự là gì. Và tìm kiếm từ đồng nghĩa quá.
Và điều này có thể giúp bạn như một phép ẩn dụ:
Giao diện
Giả sử, bạn nướng một loại bánh mới với dâu tây và bạn đã tạo nên một công thức mô tả các thành phần và bước. Chỉ có bạn biết tại sao nó nếm rất ngon và khách của bạn thích nó. Sau đó, bạn quyết định xuất bản công thức của mình để người khác cũng có thể thử chiếc bánh đó.
Điểm ở đây là
- để làm cho nó đúng - cẩn thận - để ngăn chặn những thứ có thể trở nên tồi tệ [như quá nhiều dâu tây hoặc một cái gì đó] - để giữ cho những người thử nó dễ dàng ] - để nói những điều bạn có thể làm nhưng không cần phải
- to be careful
- to prevent things which could go bad [like too much strawberries or something]
- to keep it easy for the people who try it out
- to tell you how long is what to do [like stiring]
- to tell which things you CAN do but don't HAVE to
Chính xác đây là những gì mô tả giao diện. Đó là một hướng dẫn, một tập hợp các hướng dẫn quan sát nội dung của công thức. Tương tự như khi bạn sẽ tạo một dự án trong PHP và bạn muốn cung cấp mã trên GitHub hoặc với bạn tình của bạn hoặc bất cứ điều gì. Một giao diện là những gì mọi người có thể làm và những gì bạn không nên. Các quy tắc giữ nó - nếu bạn không vâng lời, toàn bộ cấu trúc sẽ bị phá vỡ.
Trừu tượng hóa
Để tiếp tục với phép ẩn dụ này ở đây ... hãy tưởng tượng, bạn là khách lần này ăn chiếc bánh đó. Sau đó, bạn đang thử chiếc bánh đó bằng công thức bây giờ. Nhưng bạn muốn thêm các thành phần mới hoặc thay đổi/bỏ qua các bước được mô tả trong công thức. Vậy điều gì đến tiếp theo? Lên kế hoạch cho một phiên bản khác của chiếc bánh đó. Lần này với quả mọng đen và không phải quả rơm và kem vani hơn ... ngon.
Đây là những gì bạn có thể xem xét một phần mở rộng của bánh ban đầu. Về cơ bản, bạn thực hiện một sự trừu tượng của nó bằng cách tạo ra một công thức mới bởi vì nó khác nhau. Nó có một vài bước mới và các thành phần khác. Tuy nhiên, phiên bản Black Berry có một số phần bạn đã đảm nhận từ bản gốc - đây là những bước cơ bản mà mọi loại bánh đó phải có. Giống như các thành phần giống như sữa - đó là những gì mà mọi lớp có nguồn gốc đều có.
Bây giờ bạn muốn trao đổi các thành phần và các bước và chúng phải được xác định trong phiên bản mới của chiếc bánh đó. Đây là những phương pháp trừu tượng phải được xác định cho bánh mới, bởi vì cần có một loại trái cây trong bánh nhưng cái nào? Vì vậy, bạn lấy quả mọng đen lần này. Xong.abstract methods which have to be defined for the new cake, because there should be a fruit in the cake but which? So you take the black berries this time. Done.
Ở đó bạn đi, bạn đã mở rộng bánh, làm theo giao diện và các bước và nguyên liệu trừu tượng từ nó.