Abstract Classes
🎯 Mục tiêu: Định nghĩa contracts với abstract classes.
💡 Cú pháp
Phần tiêu đề “💡 Cú pháp”abstract class Shape { double get area; // Abstract getter void draw(); // Abstract method
void describe() => print("Area: $area"); // Concrete method}
class Circle extends Shape { final double radius; Circle(this.radius);
@override double get area => 3.14159 * radius * radius;
@override void draw() => print("Drawing circle");}📝 Không thể instantiate
Phần tiêu đề “📝 Không thể instantiate”// var shape = Shape(); // Error!var circle = Circle(5); // OK✅ Checklist
Phần tiêu đề “✅ Checklist”-
abstract classkhông thể instantiate - Abstract methods không có body
- Subclass phải implement tất cả abstract members