So sánh extend và implement java năm 2024
Nếu bạn đang phát triển một ứng dụng Flutter, bạn hẳn đã thấy rất nhiều trường hợp sử dụng Implements v/s Extends v/s With. Đối với một người chưa bao giờ làm việc với Dart trước đây, sự khác biệt giữa các từ khóa này là không rõ ràng. Trong bài đăng này, tôi sẽ đi sâu về các từ khóa này để chia sẻ hiểu biết của tôi về Flutter và Dart. Show ABSTRACTNhư trong bất kỳ ngôn ngữ OOP nào, một lớp trừu tượng không thể được khởi tạo trực tiếp. Trong Dart, bạn chỉ có thể sử dụng từ khóa
Class AnotherExample cũng trừu tượng vì nó không ghi đè lên tất cả các phương thức trừu tượng của lớp cha. Khi bạn muốn ghi đè một hoặc nhiều phương thức, chỉ cần sử dụng chú thích
0 và đảm bảo sử dụng cùng một tên. Lưu ý rằng trong Dart, bạn cũng có thể ghi đè các phương thức không trừu tượng nhưng đây được coi là một cách thực hành không tốt; chỉ các phương thức trừu tượng nên được ghi đè.
Getters và setters cũng có thể bị ghi đè. Điều quan trọng cần ghi nhớ là bạn không cần ghi đè tất cả các phương thức trong lớp cha khi sử dụng
1. INTERFACESTrái ngược với các ngôn ngữ lập trình khác, Dart không có từ khóa
2 và bạn phải sử dụng các lớp để tạo
3. Bất kỳ lớp nào cũng được phép triển khai một hoặc nhiều
3.
Khi sử dụng các
5, bạn phải ghi đè mọi phương thức được khai báo trong lớp cha. Với
1, bạn có thể không ghi đè hoặc ghi đè nhiều phương thức (vì vậy bạn không bị buộc phải xác định lại tất cả chúng). Bạn cũng có thể sử dụng một lớp thông thường làm
2:
Một lần nữa, vì bạn đang sử dụng
5, bạn phải ghi đè tất cả các phương thức của lớp cha (ngay cả khi chúng không trừu tượng và có body). Để tránh nhầm lẫn và code clean, bạn nên luôn sử dụng các lớp trừu tượng làm
2. Trong Dart có hỗ trợ multiple interfaces :
MIXINSMixin là một loại lớp có thể được "associated" với một lớp khác để sử dụng lại các đoạn code mà không cần sử dụng tính kế thừa. Nó yêu cầu từ khóa
0:
Một lớp có thể có vô số mixin. Khi bạn gán một mixin cho một lớp, nó sẽ tự động có quyền truy cập vào tất cả các phương thức được khai báo trong mixin đó:
Kết quả: Như bạn thấy, các chức năng được “imported” từ các mixin. Nói chung, mixin rất hữu ích khi các lớp có lôgic hoặc model kế thừa khác nhau, có các phương thức giống hệt nhau mà bạn không muốn sao copy / paste. Đây là một ví dụ đơn giản:
Nếu bạn muốn, bạn cũng có thể hạn chế
1 chỉ được áp dụng trên một số loại nhất định bằng cách sử dụng từ khóa
2:
SUMMARYEXTENDS
IMPLEMENTS
MIXIN
Khi bạn sử dụng
7, bạn
8 mọi phương thức của mixin A vào lớp B. Theo tùy chọn, việc sử dụng
1 có thể bị giới hạn ở một loại nhất định bằng cách sử dụng từ khóa
2. |