Monday, March 30, 2020

சி ஷார்ப் மெத்தட் ஹைடிங்க்.


முதலில் Employee என்று ஒரு பேஸ் கிளாஸ் உருவாக்குவோம்.
class Employee
    {
        public string FirstName;
        public string LastName;
        public void PrintFullName()
        {
            Console.WriteLine(FirstName + " " + LastName);
        }
    }
இப்பொழுது அதற்கு இரண்டு சைல்ட் கிளாஸ் உருவாக்குவோம்.
class PartTimeEmployee : Employee
    {

    }
    class FullTimeEmployee : Employee
    {
    }
பிறகு FullTimeEmployee கிளாசிற்கு ஆப்ஜெக்ட் உருவாக்குவோம்.பேஸ் கிளாசில் உள்ள மெம்பர்கள் டெரிவ்டு கிளாசிற்கும் கிடைக்கும் என்பதை நாம் அறிவோம். அதன் படி
class Program
    {
        static void Main(string[] args)
        {
            FullTimeEmployee FTE = new FullTimeEmployee();
            FTE.FirstName = "Full Time";
            FTE.LastName = "Employee";
            FTE.PrintFullName();
            PartTimeEmployee PTE = new PartTimeEmployee();
            PTE.FirstName = "Part Time";
            PTE.LastName = "Employee";
            PTE.PrintFullName();
        }
    }
Ctrl+f5 கொடுத்து நிரலை இயக்குவோம்
வெளியீடு:
Full Time Employee
Part Time Employee
Press any key to continue . . .
நமக்கு பார்ட் டைம் எம்ப்ளாயி   PrintFullName மெத்தட் அழைக்கும் பொழுது–contractor  என்பதும் சேர்ந்து வர வேண்டும் என்றால் PartTimeEmployee கிளாசில் ஒரு மெத்தட் உருவாக்குவோம்.
class PartTimeEmployee : Employee
    {
        public void PrintFullName()
        {
            Console.WriteLine(FirstName + " " + LastName+" -contractor");
        }
    }
PrintFullName என்ற மெத்தட் பேஸ் கிளாசிலும் இருக்கின்றது அதே நேரத்தில் டெரிவ்டு கிளாசிலும் இருக்கின்றது.
இப்பொழுது நிரலை இயக்கினால்
Full Time Employee
Part Time Employee -contractor
Press any key to continue . . .
என்ற  வெளியீடு கிடைக்கும்.
இதில் டெரிவ்டு கிளாசில் உள்ள மெத்தட் பேஸ் கிளாசில் உள்ள மெத்தடை ஹைட் செய்கின்றது
 எனினும் PrintFullName() என்பது பச்சை கலரில் அண்டர்லைன் ஆகியிருக்கும். இதை சரியாக்க டெரிவ்டு கிளாசில் உள்ள மெத்தடில் new என்ற கீவேர்டு சேர்த்தால் அது மறையும்.
class PartTimeEmployee : Employee
    {
        public new void PrintFullName()
        {
            Console.WriteLine(FirstName + " " + LastName+" -contractor");
        }
    }
இப்பொழுது டெரிவ்டு கிளாசில் உள்ள மெத்தடை அழைத்தால் பேஸ் கிளாசில் உள்ளதே கிடைக்க வேண்டுமென்றால் 2 வழிகள் இருக்கின்றது முதல் மெத்தட்.
class PartTimeEmployee : Employee
    {
        public new void PrintFullName()
        {
            base.PrintFullName();
            //Console.WriteLine(FirstName + " " + LastName+" -contractor");
        }
    }
Base என்ற கீவேர்டு மூலம் இதை செய்திருக்கின்றோம்.
இரண்டாவது வழி:
டைப் கேஸ்டிங்க்.
டெரிவ்டு கிளாஸ் ஆப்ஜெக்டை பேரன்ட் கிளாஸ் ஆப்ஜெக்டாக டைப் கேஸ்ட் செய்கின்றோம்.
static void Main(string[] args)
        {
            FullTimeEmployee FTE = new FullTimeEmployee();
            FTE.FirstName = "Full Time";
            FTE.LastName = "Employee";
            FTE.PrintFullName();
            PartTimeEmployee PTE = new PartTimeEmployee();
            PTE.FirstName = "Part Time";
            PTE.LastName = "Employee";
            ((Employee)PTE).PrintFullName();

        }
இரண்டு வழியிலும் வெளியீடு கீழ்கண்டவாறு இருக்கும்.
Full Time Employee
Part Time Employee
Press any key to continue . . .
பேரண்ட் கிளாசிற்கு ரெஃபெரஅன்ஸ் உருவாக்கி அதை டெரிவ்டு கிளாஸ் மெம்பருக்கு பாயிண்ட் செய்கின்றோம்.
Employee  PTE = new PartTimeEmployee();
            PTE.FirstName = "Part Time";
            PTE.LastName = "Employee";
            PTE.PrintFullName();
இப்பொழுதும் மேலே உள்ள வெளியீடே கிடைக்கும்.
நன்றி.
முத்து கார்த்திகேயன்,மதுரை.


ads Udanz

No comments:

Post a Comment