இந்தப் பதிவில் 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 செய்திருக்காவிட்டால் இது சாத்தியமில்லை.
அடுத்த பதிவில் interface குறித்து மேலும் விரிவாகப் பார்ப்போம்.
-தொடரும்
நன்றாக செல்கிறது! தொடருங்கள்!
பதிலளிநீக்குone such use of interfaces :
பதிலளிநீக்குinterfaces will be very useful in netwok programming... where objects are reside on different nodes...
good post , very useful for beginners.. keep on rocking..
தமிழ் வலைப்பதிவர்களே!
பதிலளிநீக்குபுதிய தமிழ் திரட்டியான தமிழ்புக்மார்க்கில் உங்கள் வலைப்பதிவுகளை இனைத்துபயன் பெறுங்கள்.
தமிழ்புக்மார்க்
http://tamilbookmark.co.cc
நன்றி திரு.ராஜா
பதிலளிநீக்கு