Dart/Flutter So sánh abstract class, interface, mixin

Khi lập trình dart và flutter chắc hẳn bạn đã gặp và sử dụng abstract class, interface(implements class) và mixin nhưng liệu bạn đã hiểu rõ sự khác nhau giữa chúng, hãy cùng mình đi so sánh để làm rõ điểm khác biệt nhé Mình có ví dụ như sau abstractclassAbstractClass(){abstractFun();normalFun(){}} extends class C1 extendsAbstractClass{@overrideabstractFun(){}}

Khi lập trình dart và flutter chắc hẳn bạn đã gặp và sử dụng abstract class, interface(implements class)mixin nhưng liệu bạn đã hiểu rõ sự khác nhau giữa chúng, hãy cùng mình đi so sánh để làm rõ điểm khác biệt nhé

Mình có ví dụ như sau

abstractclassAbstractClass(){abstractFun();normalFun(){}}

extends

class C1 extendsAbstractClass{abstractFun(){}}

Khi bạn extends thì bạn sẽ

  • Chỉ có thể extends 1 class
  • Phải override abstract fun hoặc C1 là abstract class
  • Dùng lại normal fun

implements

class C2 implementsAbstractClass{abstractFun(){}normalFun(){}}

Khi bạn implements thì bạn sẽ

  • Có thể implements nhiều class
  • Phải override lại tất cả fun, cả normal fun chứ không dùng lại được, hoặc C2 là abstract class

mixin

mixin là một cách sử dụng lại code của dart, tận dụng ưu điểm và khắc phục nhược điểm của extendsimplements

mixin M1 {doWork(){}stop(){}}class C3 with M1 {}

Khi bạn with mixin thì bạn sẽ

  • Dùng lại được code
  • Có thể with nhiều mixin
  • Có thể giới hạn class sử dụng mixin với on Class
  • Không thể extends mixin
  • Nếu implements mixin thì phải override lại tất cả fun hoặc C3 là abstract class, chứ không dùng lại được code
  • Trường hợp with nhiều mixin có chung fun, fun của mixincuối cùng trong list mixin sẽ được thực thi

Ở ví dụ trên thì parent class là abstract class, trường hợp parent class là normal class thì cũng tương tự, các bạn khám phá nhé.

Nguồn: viblo.asia

Bài viết liên quan

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 2

viết lại nội dung này ” Phát hiện các cuộc tấn công Cross Site Scripting (XSS)

AI Chatbot 2025: Xu Hướng Tất Yếu Cho Doanh Nghiệp Dẫn Đầu

Giới thiệu AI chatbots đã trải qua một hành trình đáng kể, từ những công cụ t

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 1

Tấn công web là gì? Ứng dụng web là các ứng dụng cung cấp dịch vụ cho người

SEO Mũ Trắng, Mũ Đen, Mũ Xám: Hiểu Biết và Lựa Chọn Phù Hợp

SEO Mũ Trắng, Mũ Đen, Mũ Xám: Hiểu Biết và Lựa Chọn Phù Hợp Trong kỷ nguyên s