इन दोनों का एक साथ उपयोग करना बिल्कुल सामान्य है। उदाहरण के लिए AbstractList
(List
लागू करना) और AbstractMap
(Map
लागू करना) जेडीके में विचार करें।
मेरे घुटने झटका प्रतिक्रिया सार वर्ग इंटरफ़ेस को लागू और फिर ठोस वर्ग यह से निकाले जाते हैं राशि के लिए हो गया होता:
abstract class Base implements TheInterface {
/* ...shared methods... */
}
class Concrete1 extends Base { }
class Concrete1 extends Base { }
लेकिन आपका प्रश्न अन्य संभावना को ऊपर उठाने के लिए मुझे लगता है कि बनाया है, और मैं इसे उस तरह से कर रही है के खिलाफ एक तर्क के ज्यादा नहीं देख सकते हैं:
abstract class Base {
/* ...shared methods... */
}
class Concrete1 extends Base implements TheInterface { }
class Concrete1 extends Base implements TheInterface { }
इसके अलावा, मैं इसे इस तरह से कर रही है एक तर्क के लिए देख सकते हैं, विशेष रूप से है कि यह सार ग के बीच युग्मन को हटा घास और इंटरफ़ेस। यदि आपके पास एक और कक्षा है जिसे कार्यक्षमता की आवश्यकता है Base
प्रदान करता है लेकिन इंटरफ़ेस को लागू करने की आवश्यकता नहीं है, तो आपके पास ऐसा करने में लचीलापन है।
एक तीसरा विकल्प भी है: संरचना। आप सब पर एक अमूर्त वर्ग के लिए नहीं कर सकता है, बल्कि कई ठोस वर्ग है कि इंटरफ़ेस उपयोग एक आम सहायक वर्ग को लागू उनके कार्यान्वयन में है:
class Helper {
/* ...shared methods... */
}
class Concrete1 implements TheInterface {
/* ...uses instance of Helper */
}
class Concrete1 implements TheInterface {
/* ...uses instance of Helper */
}
यह है कि एक ही लचीलापन, एक और रूप में।
स्रोत
2013-05-20 11:04:52
कोई कारण नहीं है कि उन्हें –
नहीं होना चाहिए, बिल्कुल नहीं। कार्य में, मैं जो कुछ करता हूं वह बिल्कुल इस तरह है। –