Lớp trừu tượng (Abstract Class)

Từ khoá Abstract

Bổ từ abstract chỉ ra rằng có một việc thực hiện còn thiếu hoặc không đầy đủ. Các bổ từ abstract có thể được sử dụng với các lớp, phương thức, thuộc tính, indexer, event. Sử dụng bổ từ abstract trong một khai báo lớp để chỉ ra rằng lớp này chỉ là lớp cơ sở cho các lớp khác thừa kế tới. Lớp đó còn gọi là lớp abstract. Khi đó các lớp con thừa kế tới các lớp này này sẽ phải triển khai các phần nội dung được đánh dấu abstract.

Ví dụ về sử dụng từ khoá abstract:

abstract class ShapesClass
{
    abstract public int Area();
}
class Square : ShapesClass
{
    int side = 0;
    public Square(int n)
    {
        side = n;
    }
    // Area method is required to avoid a compile-time error.
    public override int Area()
    {
        return side * side;
    }
}
// Output: Area of the square = 144

Lớp abstract có các đặc tính sau:

  • Không thể khởi tạo đối tượng trực tiếp từ lớp abstract.
  • Lớp abstract có thể chứa các phương thức abstract và các thuộc tính cũng như phương thức bình thường
  • Không thể thay đổi lớp abstract khi có bổ từ sealed
  • Một lớp không phải là abstract thừa kế tới lớp abstract phải khởi tạo tất các các thành phần được đánh dấu abstract trong lớp cha

Các thuộc tính và phương thức abstract có nghĩa là chỉ có phần khai báo chứ không có phần nội dung thi hành.

Về mặc định interface sẽ bao gồm 100% các phương thức abstract.

Một lớp abstract có thể thừa kế tới interface như sau:

interface I
{
    void M();
}
abstract class C : I
{
    public abstract void M();
}

Ví dụ về sử dụng lớp abstract

Trong ví dụ AbstractClassDemo sau đây, lớp DerivedClass được thừa kế từ lớp abstract BaseClass. Lớp abstract chứa phương thức abstract AbstractMethod, và hai thuộc tính abstract XY.

Complete and Continue