abstract और final परस्पर विरोधी हैं:
- abstract क्लास: विस्तारित की जानी चाहिए (सबक्लास द्वारा कार्यान्वित)।
- final क्लास: विस्तारित नहीं की जा सकती।
एक क्लास दोनों नहीं हो सकती क्योंकि आवश्यकताएं विरोधाभासी हैं।
उदाहरण: त्रुटि
public final abstract class Example {
public void sample() { }
}संकलन त्रुटि
Example.java:1: error: illegal combination of modifiers: abstract and final
public final abstract class Example {
^संबंधित नियम
abstractमेथडfinalनहीं हो सकते (ओवरराइड किए जाने चाहिए)।finalमेथडabstractनहीं हो सकते (ओवरराइड नहीं किए जा सकते)।- एक क्लास
abstractहो सकती है बिना किसी एब्स्ट्रैक्ट मेथड के (इंस्टेंशिएशन रोकने के लिए)।