मैं कुछ जावा 8 कोड है जो इस तरह दिखता है को बनाए रखने कर रहा हूँ के दौरान अधिभावी विधि:जावा - (बेनामी उपवर्ग) वस्तु दृष्टान्त निर्माण
Class Entity {
protected Model theModel;
public Entity() {
init();
}
protected void init() {
this.theModel = new Model();
}
}
Class Model {
}
Class SubModel extends Model {
}
main {
Entity newEntity = new Entity() {
@Override
protected void init() {
this.theModel = new SubModel();
}
};
}
कोड वर्तमान में संकलित और सही ढंग से चलाता है, लेकिन अब मैं इसे अद्यतन करने की जरूरत है।
मेरा प्रश्न हैं:
- कैसे
init()
विधि का ओवरराइड, सब पर काम कर रहा हैnewEntity
के निर्माण के दौरान? - ऑब्जेक्ट कन्स्ट्रक्टर स्टेटमेंट में इस विधि ओवरराइड के लिए सही शब्दावली क्या है?
मेरा शोध अब तक सुझाव देता है कि जावा गतिशील रूप से विधियों को ओवरराइड नहीं कर सकता है - इस आधार पर ओवरराइड नहीं कर सकता है, क्योंकि विधि ओवरराइड प्रति-वर्ग प्रति-वस्तु नहीं है। लेकिन यह कोड स्निपेट दिखाना प्रतीत होता है कि जावा इसे अभ्यास में कर सकता है?
कृपया [इस सवाल] को पढ़ें (http://stackoverflow.com/q/28676796/1876620) और उत्तर। यह 'इस संदर्भ' से बचने के बारे में है। –