இந்தப் பதிவில் Interface குறித்து அறிந்து
கொள்வோம். C, C++ மொழிகளில் இந்தக் கருத்துரு இல்லை. ஜாவா, C# மொழிகள்
interfaceக்கு ஆதரவளிக்கிறது. Interfaceஐ தமிழில் இடைமுகப்பு எனச்
சொல்லலாம். Interface declaration ஒரு classஐ declare செய்வதைப் போலவே ஒத்திருக்கும். Interfaceல் methodகளைக் declare செய்யலாமே தவிர define செய்ய இயலாது.
Methodகளை எழுத முடியாதென்றால் பிறகு
அப்படியென்ன நன்மை interfaceஆல் கிடைத்து விடப் போகிறது. Interfaceஆல் பல
நன்மைகள் புரோகிராமருக்கு உள்ளன. பெரிய ப்ராஜெக்ட்டுகளில் interfaceஐத்
தவிர்க்க இயலாது. Interface இல்லாமலும் புரொகிராம் எழுதலாம்.
Interfaceஐத் தவிர்க்கும் போது என்னென்ன பிரச்சனைகள் வருமெனப் பார்ப்போம்.
பணியில் அமர்வதற்கு முன்னர் interface என்றால் என்ன என என்னிடம்
கேட்டிருந்தால், ஜாவாவில் multiple inheritance இல்லை அதற்குபதில்
interface பயன்படுத்திக் கொள்ளலாம் எனச் சொல்லியிருப்பேன். இதில் கொஞ்சம்
உண்மையிருக்கிறதே தவிர interfaceன் பயன்பாடே வேறு.
Interface ஒரு class இப்படித்தான் இருக்க
வேண்டுமெனச் சொல்கிறது. எந்தெந்த classசெல்லாம் interfaceஐ implement
செய்கிறதோ அவை interfaceல் உள்ள methodகளுக்கு விளக்கமளிக்க வேண்டும். ஒரு
class ஒன்று அல்லது ஒன்றுக்கு மேற்பட்ட interfaceகளை implement
செய்கிறதென்றால், அந்த class தனக்கு அறிவுறுத்தப்பட்ட interfaceசுடன்
பொருந்திச் செல்கிறதெனச் சொல்லலாம். அதிகப்படியான குழப்பங்கள்
விளைவிப்பதன் காரணமாக ஜாவா multiple inheritanceஐ ஆதரவளிப்பதில்லை.
ஜாவாவில் எழுதப்படும் எந்தவொரு classக்கும் அதிகப்படியாக ஒரு classன்
பண்புகளை மட்டுமே inherit செய்ய முடியும். ஒரு classல் உள்ள பண்புகள் பல
classகளுக்குத் தேவைப்படுகிறதென்றால் interface அதற்கு துணை புரியும்.
Animal என்றொரு class உள்ளதென வைத்துக்கொள்வோம்.
class Animal{int no_of_legs;
void run() {
}
}
நீங்கள் Dog என்றொரு class எழுதப்
போகிறீர்கள், அதில் run() method வேண்டுமென நினைக்கிறீர்கள். run()
மெத்தட் புதிதாக எழுதுவதற்கு பதில் ஏற்கனவே Animal.classல்
எழுதப்பட்டிருக்கும் run() மெத்தடை பயன்படுத்திக் கொள்ளலாம். class Dog
extends Animal {} என எழுதுவோம். இதுவே Animal என்பதை classசாக இல்லாமல்
இடைமுகப்பாக வைத்திருந்தோமென்றால்
interface Animal {int no_of_legs;
void run();
}
என இருக்கும். Interfaceஐ extend செய்வதற்கு
பதில் implement செய்ய வேண்டும். class Dog implements Animal. இங்கு
Animal என்பது interface.
ஒரு classக்கு ஆப்ஜெக்ட் உருவாக்குவது போல் interfacக்கு ஆப்ஜெக்ட் உருவாக்க முடியாது.
class Animal....
Animal animal = new Animal();
இதுவே interface Animalலாக இருந்தால்
Animal
animal = new Animal() என எழுத முடியாது. Interfaceசை வைத்துக் கொண்டு
object reference உருவாக்கலாம். பின்னர் அந்த interfaceஐ implement
செய்திருக்கும் எந்தவொரு classக்கும் புது ஆப்ஜெக்ட் உருவாக்கி assign
செய்து கொள்ளலாம்.
Animal animal = new Dog(); Dog class Animal interfacசை implement செய்திருக்காவிட்டால் இது சாத்தியமில்லை.
கருத்துகள் இல்லை:
கருத்துரையிடுக
குறிப்பு: இந்த வலைப்பதிவின் உறுப்பினர் மட்டுமே ஒரு கருத்துரையை வெளியிடக்கூடும்.