आप जानवरों की कक्षाओं (जैविक अर्थ में वर्ग) के लिए इंटरफेस बना सकते हैं, जैसे कि public interface Equidae
घोड़ों के लिए और public interface Avialae
पक्षियों के लिए (मैं कोई जीवविज्ञानी नहीं हूं, इसलिए शर्तें गलत हो सकती हैं)।
तब आप अभी भी एक बना सकते हैं
public class Bird implements Avialae {
}
तथा
public class Horse implements Equidae {}
और भी
public class Pegasus implements Avialae, Equidae {}
टिप्पणियों से जोड़ना:
डुप्लिकेट कोड को कम करने के लिए, आप एक अमूर्त वर्ग बना सकते हैं जिसमें उन जानवरों के अधिकांश आम कोड शामिल हैं जिन्हें आप लागू करना चाहते हैं।
public abstract class AbstractHorse implements Equidae {}
public class Horse extends AbstractHorse {}
public class Pegasus extends AbstractHorse implements Avialae {}
अपडेट करें
मैं एक और विवरण जोड़ना चाहूंगा। जैसा कि ब्रायन ने कहा है , यह ओपी को पहले से ही पता है।
हालाँकि, मैं इस बात पर जोर देना चाहता हूं, कि मैं "मल्टी-इनहेरिटेंस" समस्या को इंटरफेस के साथ बायपास करने का सुझाव देता हूं और यह कि मैं उन इंटरफेस का उपयोग करने की अनुशंसा नहीं करता हूं जो पहले से ही एक ठोस प्रकार (जैसे बर्ड) का प्रतिनिधित्व करते हैं, लेकिन अधिक व्यवहार (दूसरों को संदर्भित करते हैं) बतख-टाइपिंग, जो अच्छा है, भी है, लेकिन मेरा मतलब सिर्फ इतना है: पक्षियों का जैविक वर्ग, एविला)। मैं एक राजधानी 'I' से शुरू होने वाले इंटरफ़ेस नामों का उपयोग करने की अनुशंसा नहीं करता हूं, जैसे कि IBird
, जो आपको इंटरफ़ेस की आवश्यकता के बारे में कुछ नहीं बताता है। यह सवाल का अंतर है: इंटरफेस का उपयोग करके वंशानुगत पदानुक्रम का निर्माण करें, उपयोगी होने पर अमूर्त कक्षाओं का उपयोग करें, जहां आवश्यक हो वहां ठोस कक्षाओं को लागू करें और यदि आवश्यक हो तो प्रतिनिधिमंडल का उपयोग करें।