التاسك عن إنشاء نظام لإدارة منتجات (Products) بأنواع مختلفة، باستخدام الوراثة والكلاسات.
التفاصيل:
الكلاس الأساسي product:
فيه الخصائص العامة لأي منتج:
productId (رقم المنتج)
name (اسم المنتج)
price (سعر المنتج)
stock (المخزون)
category (التصنيف)
فيه getters & setters علشان تتعامل مع القيم.
فيه validation بسيط للسعر (مينفعش يبقى بالسالب).
الكلاس electronicProduct (بيورّث من product):
بيمثل نوع خاص من المنتجات (الإلكترونيات).
بيضيف خاصية جديدة:
warrantyInMonths (مدة الضمان بالشهور).
فيه getter & setter للضمان مع شرط إن الضمان مينفعش يكون بالسالب.
عملت Override لدالة toString() علشان تعرض بيانات المنتج بشكل منسق (ID, Name, Price, Stock, Category, Warranty).
(غالبًا فيه كلاس تاني bookProduct.java في المشروع – نفس الفكرة بس لكتب، يضيف خصائص خاصة بالكتب زي المؤلف أو عدد الصفحات).
الهدف من التاسك:
تطبيق مفهوم الوراثة في OOP.
إنشاء كلاس أساسي عام (product) لكل المنتجات.
إنشاء كلاسات فرعية لكل نوع منتج يضيف خصائصه الخاصة (زي الإلكترونيات أو الكتب).
استخدام Encapsulation (عن طريق الـ getters & setters).
استخدام Polymorphism (عن طريق Override لـ toString() مثلاً).