मेरे पास दो वर्ग हैं जो समान सार वर्ग का विस्तार करते हैं। उन्हें दोनों एक ही स्थिर की जरूरत है, लेकिन विभिन्न मूल्यों के साथ। मैं यह कैसे कर सकता हूँ? कुछ उदाहरण कोड दिखाने के लिए जो मैं करना चाहता हूं।जावा में कॉन्सटेंट ओवरराइडिंग
abstract class A {
public static int CONST;
}
public class B extends A {
public static int CONST = 1;
}
public class C extends A {
public static int CONST = 2;
}
public static void main(String[] args){
A a = new B();
System.out.println(a.CONST); // should print 1
}
उपर्युक्त कोड संकलित नहीं होता है क्योंकि कॉन्स्ट को इंट क्लास ए शुरू नहीं किया गया है। मैं इसे कैसे काम कर सकता हूं? CONST का मूल्य बी के सभी उदाहरणों के लिए 1 होना चाहिए, और सी के सभी उदाहरणों के लिए 2 और ए के सभी उदाहरणों के लिए 1 या 2 होना चाहिए। क्या इसके लिए statics का उपयोग करने का कोई तरीका है?
धन्यवाद! मैं बस चाहता हूं कि मैं स्थिर का उपयोग कर सकूं, क्योंकि मान बी के दूसरे उदाहरण से अलग नहीं होते हैं। – Fractaly
@ फ्रैक्टली: लेकिन वे 'ए' के उदाहरण से दूसरे में भिन्न होते हैं। –
प्राप्त नहीं होना चाहिए() में एक सार होना चाहिए? – Fractaly