Bỏ qua để đến nội dung

Abstract Classes

🎯 Mục tiêu: Định nghĩa contracts với abstract classes.


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");
}

// var shape = Shape(); // Error!
var circle = Circle(5); // OK

  • abstract class không thể instantiate
  • Abstract methods không có body
  • Subclass phải implement tất cả abstract members