Tôi muốn thực hiện một chương trình thị trường nhỏ. có một lớp trừu tượng có tên (Hàng hóa) và hai lớp có nguồn gốc từ nó (hàng khô và lạnh). Cách thêm một số mục sau đó? (trứng, sữa, gạo ... vv)Làm thế nào để khởi tạo lớp trừu tượng C#?
Trả lời
Bạn không thể khởi tạo lớp trừu tượng. Mục đích duy nhất là hoạt động như một lớp cơ sở. Trứng, sữa, lớp gạo của bạn phải lấy được từ Hàng hóa và thực hiện chức năng, như được hiển thị bên dưới:
public abstract class Goods
{
}
public class DryGoods : Goods
{
}
public class ColdGoods : Goods
{
}
Sau đó, bạn có thể có nhiều sản phẩm nguyên thủy hơn kế thừa từ hàng Khô hoặc Lạnh.
public class Egg : DryGoods
{
}
public class Milk : ColdGoods
{
}
Hoặc nếu bạn không cần Milk
hoặc Egg
lớp trọng lượng dưới dạng ánh sáng (Hoặc các vật thể chuyển nhượng), bạn chỉ có thể sử dụng có nguồn gốc DryGoods
hoặc ColdGoods
loại trực tiếp và có một tài sản GoodsType
:
DryGoods egg = new DryGoods();
egg.GoodsType = DryGoods.Egg;
ColdGoods milk = new ColdGoods();
milk.GoodsType = ColdGoods.Milk;
'DryGoods' và' ColdGoods 'có lẽ cũng nên trừu tượng, không phải vì mã, mà vì lợi ích của logic kinh doanh. –
Nếu là bạn, tôi tạo một số ví dụ của DryGoods và ColdGoods thay vì tạo Entity mới. –
Nếu tôi tạo các đối tượng từ các lớp dẫn xuất, thì việc sử dụng (GoodsType) là gì? – Saja
Bạn đã tạo đối tượng của lớp con và sử dụng đối tượng của lớp con, bạn có thể thiết lập các giá trị. Bạn không thể khởi tạo một lớp trừu tượng. Bạn có thể sử dụng nó như chỉ là một lớp cơ sở ..
cảm ơn bạn, tôi nên tạo đối tượng ở đâu? trong việc triển khai WinForm? – Saja
trong tệp .cs có. Bạn nên tạo một đối tượng trong lớp con. –
Look, bạn có một lớp cơ sở trừu tượng:
public abstract class Good { }
Và ở đó bạn có các lớp học được đặt tên của bạn:
public class Egg : Good { }
public class Milk : Good { }
public class Rice : Good { }
Bây giờ bạn có thể thêm Các thuộc tính và phương thức cho lớp cơ sở Tốt.
Bây giờ bạn cũng có thể thêm thuộc tính và phương pháp để các tên lớp trứng, sữa, và gạo :)
Bây giờ bạn cũng có thể có nhiều trứng, sữa và gạo, nếu bạn đổi tên Goods
-Good
:
var allGoods = new List<Good>();
var eggs = new Egg[16];
allGoods.Add(eggs);
var milk = new Milk[64];
allGoods.Add(milk);
var rice = new Rice[64];
allGoods.Add(rice);
- 1. C# Làm rõ lớp trừu tượng
- 2. Phương thức khởi tạo riêng trong lớp trừu tượng
- 3. Làm thế nào để tạo lớp cơ sở trừu tượng trong JavaScript mà không thể được khởi tạo
- 4. Lớp 'Phòng' là trừu tượng; không thể được khởi tạo
- 5. Không thể khởi tạo lớp trừu tượng ... với các phương thức trừu tượng
- 6. Lớp trừu tượng có thể được khởi tạo không?
- 7. Lớp trừu tượng Java, hàm tạo trừu tượng
- 8. Tạo giao diện cho mẫu lớp trừu tượng trong C++
- 9. Lớp trừu tượng bắt nguồn từ lớp không trừu tượng
- 10. Làm thế nào để khởi tạo một phần tử XSD của một kiểu trừu tượng
- 11. làm thế nào để khởi tạo một đối tượng của lớp từ chuỗi trong Objective-C?
- 12. C++: Tạo lớp trừu tượng với phương thức trừu tượng và ghi đè phương thức trong lớp con
- 13. Mảng lớp trừu tượng
- 14. Làm thế nào để một lớp trừu tượng "DocumentBuilderFactory" được phép tạo nhanh cá thể mới
- 15. “Không thể khởi tạo lớp trừu tượng ... với các phương pháp trừu tượng” trên lớp học mà không cần phải có bất kỳ phương pháp trừu tượng
- 16. Làm thế nào để đơn vị kiểm tra các lớp trừu tượng
- 17. lớp trừu tượng tĩnh
- 18. Refactoring lớp trừu tượng trong C#
- 19. Làm thế nào để db4o khởi tạo các đối tượng?
- 20. Tài sản phải được khởi tạo hoặc trừu tượng
- 21. khai báo lớp trừu tượng trong C++
- 22. Làm cách nào để bọc giao diện C++ (lớp trừu tượng) trong C++/CLI?
- 23. AS3 - Lớp trừu tượng
- 24. C++/CLI: Làm thế nào để khai báo lớp trừu tượng (trong C#) và phương thức trong C++/CLI?
- 25. C# GUI & ủy quyền sử dụng làm lớp trừu tượng
- 26. Lớp trừu tượng là gì?
- 27. Làm thế nào để khởi tạo một đối tượng với một hàm tạo riêng trong C#?
- 28. Làm thế nào để tạo ra một thể hiện của lớp vô danh lớp trừu tượng trong Kotlin?
- 29. scala: trừu tượng lớp học instantiation?
- 30. Làm thế nào để nghe một phương pháp trừu tượng?
Chỉ cần kế thừa từ 'DryGoods' hoặc' ColdGoods'? Bạn có thể [sửa] câu hỏi để hiển thị các lớp bạn có và cách bạn muốn sử dụng các lớp khác (trứng, sữa vv) – Rhumborl
Tôi có một lớp học khác (tủ lạnh), (giá) và (giỏ hàng) Tôi muốn sử dụng các mục để đặt chúng trên kệ hoặc trong tủ lạnh. và thực hiện một biểu tượng để hiển thị các mục, đặt chúng vào giỏ hàng và thanh toán, như khách hàng – Saja