Bạn không thể trực tiếp khởi tạo một thể hiện của lớp trừu tượng, nhưng thay vào đó phải khởi tạo một cá thể của một lớp con được triển khai đầy đủ.
Vì vậy, đây là hợp pháp:
Housecat* theCats = new Housecat[200];
và sau đó bạn có thể truy cập mỗi con mèo thông qua giao diện Cát
bool catsMeow = ((Cat*)(&theCats[0]))->CanMeow();
Nhưng trình biên dịch không có cách nào biết làm thế nào để nhanh chóng một lớp trừu tượng; trên thực tế, thực tế là nó trừu tượng có nghĩa là nó không thể được khởi tạo trực tiếp.
Tại sao thực hiện việc này? Vì Mèo sẽ có phương thức trừu tượng
bool CanMeow() = 0;
Tất cả những con mèo thừa kế đều phải thực hiện. Sau đó, bạn có thể hỏi nếu nó có thể meo meo, với cơ hội mà một trường hợp của Lion sẽ trở lại sai.