मेरे पास एक अभिभावक वर्ग है, जो चेनर विधियों के संग्रह को परिभाषित करता है (विधियां जो "यह" लौटाती हैं)। मैं कई बाल वर्गों को परिभाषित करना चाहता हूं जिनमें उनके स्वयं के चेनर विधियां हों, लेकिन यह मूल विधियों को "ओवरराइड" भी करती है ताकि अभिभावक वर्ग की बजाय बाल वर्ग का एक उदाहरण लौटाया जा सके।जावा में ओओपी: विधि चेनिंग के साथ वर्ग विरासत
मैं प्रत्येक बच्चे वर्ग में एक ही तरीके को दोहराना नहीं चाहता हूं, यही कारण है कि मेरे पास एक अभिभावक वर्ग है जिसमें सभी बाल वर्ग साझा करने के तरीके शामिल हैं। धन्यवाद।
class Chain {
public Chain foo(String s){
...
return this;
}
}
class ChainChild extends Chain {
//I don't want to add a "foo" method to each child class
/*
public ChildChain foo(String s){
...
return this;
}
*/
public ChainChild bar(boolean b){
...
return this;
}
}
ChainChild child = new ChainChild();
child.foo().bar(); //compile error: foo() returns a "Chain" object which does not define the bar() method.
संभावित डुप्लिकेट [क्या मेरे पास जावा में एक अमूर्त बिल्डर क्लास है जो असुरक्षित संचालन किए बिना विधि श्रृंखला के साथ हो सकता है?] (Http://stackoverflow.com/questions/5818504/can-i-have-an-abstract-builder- क्लास-इन-जावा-साथ-विधि-चेनिंग-बिना-कर रहे हैं) – artbristol
मैं उत्सुक हूं, आप किस स्थिति में ('child.foo()। bar();') कॉल का उपयोग कर रहे हैं? – vijay
@vijay कुछ सेटिंग्स हैं जो सभी बच्चे वर्गों का उपयोग करते हैं। उदाहरण के लिए, एक विधि एक बूलियन पैरामीटर लेती है जो एक निश्चित सेटिंग को सक्षम/अक्षम करता है। – Michael