कॉर्मैक का वास्तव में बहुत अच्छा जवाब है, लेकिन मैं सिर्फ पहले स्थान पर भ्रम के कारण पर थोड़ा विस्तार करना चाहता हूं।
OO में विरासत को अक्सर वास्तविक दुनिया के रूपकों का उपयोग करके सिखाया जाता है, जैसे "सेब और संतरे दोनों फल के उप-वर्ग हैं"। दुर्भाग्य से यह गलत धारणा है कि OO के प्रकारों को प्रोग्राम के मौजूदा स्वतंत्र कुछ करणीय पदानुक्रमों के अनुसार मॉडलिंग की जानी चाहिए।
लेकिन सॉफ्टवेयर डिजाइन में, एप्लिकेशन की आवश्यकताओं के अनुसार प्रकारों को मॉडल किया जाना चाहिए। अन्य डोमेन में वर्गीकरण आमतौर पर अप्रासंगिक हैं। "ऐप्पल" और "ऑरेंज" वस्तुओं के साथ एक वास्तविक अनुप्रयोग में - एक सुपरमार्केट के लिए एक इन्वेंट्री प्रबंधन प्रणाली कहते हैं - वे शायद अलग-अलग वर्ग नहीं होंगे, और "फ्रूट" जैसी श्रेणियां सुपरटेप्स के बजाय गुण होंगे।
सर्कल-एलिप्से समस्या एक लाल हेरिंग है। ज्यामिति में एक वृत्त एक दीर्घवृत्त का एक विशेषज्ञता है, लेकिन आपके उदाहरण में कक्षाएं ज्यामितीय आंकड़े नहीं हैं। महत्वपूर्ण रूप से, ज्यामितीय आंकड़े परस्पर नहीं हैं। उन्हें रूपांतरित किया जा सकता है , हालांकि, लेकिन फिर एक वृत्त को एक दीर्घवृत्त में परिवर्तित किया जा सकता है। तो एक मॉडल जहां मंडलियां त्रिज्या को बदल सकती हैं लेकिन एक दीर्घवृत्त में नहीं बदलती हैं, ज्यामिति के अनुरूप नहीं है। इस तरह के एक मॉडल एक विशेष अनुप्रयोग (एक ड्राइंग टूल कह सकते हैं) में समझ में आता है, लेकिन ज्यामितीय वर्गीकरण इस बात के लिए अप्रासंगिक है कि आप वर्ग पदानुक्रम कैसे डिज़ाइन करते हैं।
तो क्या सर्किल को एलिप्से का उपवर्ग या इसके विपरीत होना चाहिए? यह पूरी तरह से उस विशेष एप्लिकेशन की आवश्यकताओं पर निर्भर करता है जो इन वस्तुओं का उपयोग करता है। एक ड्राइंग एप्लिकेशन में हलकों और दीर्घवृत्त के उपचार के विभिन्न विकल्प हो सकते हैं:
अलग-अलग UI के साथ अलग-अलग प्रकार की आकृतियों के रूप में मंडलियों और दीर्घवृत्तों को समझें (जैसे एक दीर्घवृत्त पर दो आकार-हैंडल, एक वृत्त पर एक हैंडल)। इसका मतलब है कि आपके पास एक दीर्घवृत्त हो सकता है जो ज्यामितीय रूप से एक चक्र है लेकिन आवेदन के दृष्टिकोण से एक सर्कल नहीं है।
सर्कल सहित सभी दीर्घवृत्त का इलाज करें, लेकिन एक ही मूल्य के लिए "x" और y को "लॉक" करने का विकल्प है।
एलिप्स बस ऐसे सर्कल हैं जहां स्केलिंग परिवर्तन लागू किया गया है।
प्रत्येक संभव डिज़ाइन अलग ऑब्जेक्ट मॉडल को जन्म देगा -
1 मामले में, सर्कल और एलिप्सेस भाई-बहन वर्ग होंगे
दूसरे में, एक अलग सर्कल वर्ग बिल्कुल नहीं होगा
तीसरे एक में, एक अलग एलीपस वर्ग नहीं होगा। तो तथाकथित सर्कल-एलिप्से समस्या इनमें से किसी में भी तस्वीर दर्ज नहीं करती है।
तो सवाल का जवाब देने के लिए: क्या सर्कल को दीर्घवृत्त का विस्तार करना चाहिए? इसका उत्तर है: यह इस बात पर निर्भर करता है कि आप इसके साथ क्या करना चाहते हैं। लेकिन शायद नहीं।