30/09/2018, 18:13
Hỏi về lớp trừu tượng trong C# và Java
Ví dụ mình có lớp:
abstract class figure
{//do something here}
Thì mình muốn sử dụng nó
- mình khai báo:
figure a=new figure(); // báo lỗi
- mình lại khai báo:
figure [] a=new figure[n];// giá trị n kiểu int, dòng này chạy bình thường
Mọi người giải thích cho mình tại sao có hiện tượng này nhé. Cảm ơn mọi người
Bài liên quan
Lớp trừu tượng có một số phương thức chưa được định nghĩa
-> không thể khởi tạo đối tượng cụ thể được.
Chỉ có thể khởi tạo đối tượng của class được kế thừa từ lớp trừu tượng và lớp này phải định nghĩa đầy đủ các phương thức trừu tượng của lớp cha.
Có thể khai báo như thế vì a lúc này chỉ là 1 mảng, chưa có đối tượng cụ thể nào được đưa vào bên trong mảng này cả. Chắc chắn sử dụng như sau sẽ bị lỗi:
Nhưng khi có class mới được định nghĩa như sau:
thì lúc đó bạn có thể sử dụng:
Mình chưa hiểu rõ chỗ
Ví dụ mình khai báo int []a=new int[n] thì sử dụng được còn đối với 1 class nào đó thì ko? Tại sao lại có sự khác biệt như vậy?
Vì kiểu nguyên thủy thì luôn có giá trị khởi tạo. VD khi bạn khai báo int i; thì i ở đây có giá trị là 0. Bạn search thêm default value để rõ hơn