மறைமுகமான சூப்பர் கட்டமைப்பாளரைப் பற்றி வரையறுக்கப்படவில்லை. வேறொரு கட்டமைப்பாளரை வெளிப்படையாக அழைக்க வேண்டும்
About Implicit Super Constructor Is Undefined
மறைமுகமான சூப்பர் கட்டமைப்பாளரைப் பற்றி வரையறுக்கப்படவில்லை. வேறொரு கட்டமைப்பாளரை வெளிப்படையாக அழைக்க வேண்டும்
சிக்கலைச் செய்வதில் நீங்கள் ஒரு சிக்கலை எதிர்கொண்டால், முதலில் கம்பைலரை இயக்குவதே எளிதான வழி.
அ) இல் கிரகணத்தில் இயங்குவதன் விளைவு:
A’s no-arg கட்டமைப்பாளர் பயன்படுத்தப்படுகிறார்
ஒரு அலையை ஆராய்ந்து தெரிந்து கொள்ளுங்கள், ஏனென்றால் B வகுப்பு A ஐப் பெறுகிறது.
வகுப்பு A இன் அளவுரு இல்லாத கட்டுமான முறையில், இது நேரடியாக 'A’s no-arg கட்டமைப்பாளர் செயல்படுத்தப்படுகிறது'
வகுப்பு B ஒரு கட்டுமான முறையைக் குறிப்பிடவில்லை என்றாலும், வகுப்பு B க்கு அளவுருக்கள் இல்லாமல் இயல்புநிலை கட்டுமான முறை இருக்கும், மற்றும் வகுப்பு B வர்க்கத்தை A ஐப் பெறுகிறது 'A இன் நோ-ஆர்க் கட்டமைப்பாளர் செயல்படுத்தப்படுகிறார்'
எனவே வகுப்பு C இன் முக்கிய செயல்பாட்டில், ஒரு நிகழ்வை உருவாக்க வகுப்பு B ஐப் பயன்படுத்தவும் b. வகுப்பு B இன் வர்க்கம் இல்லாத கட்டுமான முறையைப் பெறுகிறது, மேலும் 'A’s no-arg கட்டமைப்பாளர் செயல்படுத்தப்படுகிறார்'
b)
class A { public A(int x) { } } class B extends A { public B() { } } public class C { public static void main(String[] args) { B b = new B() } }
B இல் நிரலை தொகுப்பது ஒரு பிழையைப் புகாரளிக்கும் மறைமுகமான சூப்பர் கட்டமைப்பாளர் A () வரையறுக்கப்படவில்லை. வேறொரு கட்டமைப்பாளரை வெளிப்படையாக அழைக்க வேண்டும்
காட்டப்பட்டுள்ளபடி
B ஆனது A ஐப் பெறுகிறது என்பதை நாங்கள் அறிவோம், எனவே B ஐ உருவாக்குவதற்கு முன்பு A ஐ உருவாக்குவோம்.
B க்கு செயற்கையாக குறிப்பிடப்பட்ட கட்டுமான முறை இல்லை, எனவே புதிய B ஐப் பயன்படுத்தும்போது, கணினியால் தானாக வழங்கப்படும் அளவுரு இல்லாத கட்டுமான முறை பயன்படுத்தப்படுகிறது, ஆனால் இந்த நேரத்தில், B இன் பெற்றோர் வகுப்பு A ஏற்கனவே செயற்கை கட்டுமான முறையால் மூடப்பட்டுள்ளது இயல்புநிலை இல்லை-அளவுரு கட்டுமான முறை, எனவே வகுப்பு B இன் அளவுரு கட்டுமான முறை பெற்றோர் வகுப்பு A இல் இல்லை, எனவே பிழை தெரிவிக்கப்படுகிறது.