Thursday 7 April 2016

இண்டர்ஃபேஸ்(இடை முகம்)-சி ஷார்ப் ஒரு அறிமுகம்.



இன்ஹெரிடன்ஸ் என்றால் என்ன?
ஒரு கிளாஸ் மற்றொரு கிளாஸை நீட்டுவிப்பதை inheritance என்கின்றோம். அதாவது ஒரு கிளாஸில் உள்ளவற்றை மற்றொரு கிளாஸ் reuse பண்ணிக் கொள்கின்றது.Inherit பண்ணப்ப்டும் கிளாஸை base class என்றும் அதை ரீயூஸ் செய்யும் கிளாஸை derived class என்றும் அழைக்கின்றோம்.
இன்ஹெரிடன்ஸ் வகைகள்
1.single inheritance
 

ஒரு கிளாஸ் மற்றொரு கிளாஸை நீட்டுவிப்பதை single inheritance 

என்கின்றோம்


2.Multiple inheritance





ஒரு கிளாஸானது ஒன்றுக்கு மேற்பட்ட கிளாஸை inherit செய்தால் அது 

மல்டிபிள் இன்ஹெரிடன்ஸ் எனப்படுகின்றது

3.Multilevel inheritance
 




ஒரு  கிளாஸானது மற்றொரு கிளாஸை இன்ஹெரிட் செய்கின்றது அந்த 

கிளாஸை மற்றொரு கிளாஸ் இன்ஹெரிட் செய்கின்றது. இது மல்டி லெவல் 

இன்ஹெரிடன்ஸ் எனப்படுகின்றது
 

4. Hierarchical inheritance


ஒரு base class ஒன்றுக்கும் மேற்பட்ட derived class ஆக உள்ளவற்றை Hierarchical inheritance என்கின்றோம்.


5. hybrid Inheritance





ஒன்றுக்கும் மேற்பட்ட இன்ஹெரிடன்ஸ் வகை கலவையை hybrid inheritance என்கின்றோம்.
நிரலாக்க மொழிகளின் சிக்கலை நீக்குவிப்பதற்காக மல்டிபிள் இன்ஹெரிடன்ஸ் ஜாவாவில் நீக்கப்பட்டு இண்டர்ஃபேஸ் என்னும் கருத்துரு உட்புகுத்தப்பட்டது.அதையே சி ஷார்ப்பிலும் கடைப்பிடிக்கப் படுகின்றது.
ஒரு சி ஷார்ப் கிளாஸானது ஒன்றுக்கும் மேற்பட்ட கிளாஸ்களை inherit செய்ய இயலாது. ஆனால் ஒன்றுக்கும் மேற்பட்ட இண்டர்ஃபேஸ்களை implement செய்யலாம்.இதன் மூலம் மல்டிபிள் இன்ஹெரிடன்ஸ் சாத்தியமாகின்றது.
இண்டர்ஃபேஸ் ஆனது ரெஃபெரன்ஸ் (reference) இன வகையை சார்ந்தது கிளாஸிற்க்கும் இண்டர்ஃபேஸிற்க்கும் உள்ள வித்தியாசங்கள்

1.   இண்டர்ஃபேஸின் எல்லா உறுப்புகளும் public மற்றும் abstract வகையாகும்.
2.   ஒரு இண்டர்ஃபேஸினுள் constant fields, constructor மற்றும் destructors இடம் பெற இயலாது.
3.   இவை static மெம்பர்களாக இருக்க முடியாது.
4.   இண்டர்ஃபேஸில் உள்ள மெத்தட்கள் abstract ஆதலால் implementation code இருக்காது.
5.   ஒரு இண்டர்ஃபேஸ் ஆனது ஒன்றுக்கும் மேற்பட்ட இண்டர்ஃபேஸ்களை inherit செய்ய இயலும்.

இண்டர்ஃபேஸ் உருவாக்கம்.

இண்டர்ஃபேஸ் உள்ளே மெத்தட் ,ப்ராப்பர்டீஸ்,,இண்டக்சர்கள் மற்றும் ஈவண்ட்ஸ் இடம் பெறலாம்.
Syntax:
Interface Interfacename
{
Member declarations;
}
Interface என்பது keyword ஆகும். Interfacename என்பது அதற்கு நாம் இடும் பெயராகும்.

உதாரணம்
Interface Display
{
Void show();
}
Show என்ற மெத்தடின் முடிவில் semicolon உள்ளதை கவனிக்கவும். இது வெறும் அறிவிப்பே அன்றி implementation கிடையாது.
Interface Addition
{
Int Add(int a,int b);
}
Interface Computation: Addition
{
Int Sub(int a, int b);
}
மேலே Addition என்ற இண்டர்ஃபேஸ் உள்ளது .அதில்Add என்ற மெத்தட் அறிவிக்கப்பட்டுளது.அதற்கடுத்து computation என்ற இண்டர்ஃபேஸ் ஆனது Addition என்ற இன்டெர்ஃஃபேஸை இன்ஹெரிட் செய்கின்றது.

மாதிரி நிரல்
 
using System;


namespace ConsoleApplication1
{
    interface Addition
    {
        int Add();
    }
    interface Subtraction
    {
        int Sub();
    }

    class Compute:Addition , Subtraction
        {
        int a,b;
        public Compute (int a,int b)
        {
           this .a=a;
           this .b=b;
        }
        public int Add()

        {
            return(a+b);
        }
        public int Sub()
        {
            return (a-b);

        }

    }
    class Test
    {

        static void Main(string[] args)
        {
            Compute c=new Compute (10,5);
            Addition add=(Addition )c;
            Console .WriteLine ("sum="+add.Add ());
            Subtraction sub=(Subtraction )c;
            Console .WriteLine ("sub="+sub.Sub ());
            Console.ReadLine();


        }
    }
}

மேலே உள்ள நிரலில் Compute கிளாஸானது Addition,Subtraction என்கின்ற இரு இண்டர்ஃபேஸ்களை implement செய்கின்றது.Test  கிளாஸினில் Compute 

கிளாஸிற்கு c எனும் ஆப்ஜெக்ட் உருவாக்கப்படுகின்ற்து. பின்னர் 

Addition,Subtraction என்கின்ற இரு இண்டர்ஃபேஸ்களுக்கும் 

ஆப்ஜெக்ட்அறிவிக்கப்பட்டு Compute கிளாஸின் ஆப்ஜெக்டுடன் type cast 

செய்யப்படுகின்றது. பிறகு Add,Sub மெத்தட்கள் அழைக்கப்படுகின்றன. 

பின் குறிப்பு:
ஒரு இண்டர்ஃபேஸில் அறிவிக்கப்படும் எல்லா மெம்பர்களும் அதை இம்ப்ளிமென்ட் செய்யும் கிளாஸினில் நடைமுறைப் படுத்தப்பட வேண்டும்.

ஹ்ஹ்ஹ்ஹ்ஹ்ஹ்ஹd
                                    

                                முத்து கார்த்திகேயன்,  மதுரை










No comments:

Post a Comment