على سبيل المثال، لدينا كائن مستخدم بخصائصه وأساليبه، ونريد أن نجعل admin وGuest متغيرات معدلة قليلاً منه. نود إعادة استخدام ما لدينا في المستخدم، وليس نسخ/إعادة تنفيذ أساليبه، بل نرغب فقط في إنشاء كائن جديد فوقه.
في البرمجة كائنية التوجه، الفئة عبارة عن قالب كود برنامج قابل للتوسيع لإنشاء كائنات، وتوفير القيم الأولية للحالة (متغيرات الأعضاء) وتنفيذ السلوك (وظائف الأعضاء أو أساليبهم).
بغض النظر عن مدى روعتنا في البرمجة، في بعض الأحيان تحتوي نصوصنا على أخطاء. قد تحدث بسبب أخطائنا، أو إدخال مستخدم غير متوقع، أو استجابة خاطئة من الخادم، ولآلاف الأسباب الأخرى.
عندما نقوم بتطوير شيء ما، غالبًا ما نحتاج إلى فئات الأخطاء الخاصة بنا لتعكس أشياء محددة قد تسوء في مهامنا. بالنسبة للأخطاء في عمليات الشبكة، قد نحتاج إلى HttpError، لعمليات قاعدة البيانات، DbError، لعمليات البحث