Showing posts with label abstract method. Show all posts
Showing posts with label abstract method. Show all posts

Friday, January 22, 2021

C# அப்ஸ்ட்ராக்ட்

 



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

சி ஷார்ப்பில் அப்ஸ்ட்ராக்சனை இரண்டு முறையில் அடையலாம்.

  1. Abstract class
  2. Interface

அப்ஸ்ட்ராக்ட் கிளாஸ் மற்றும் இன்டெர்ஃபேஸ் இரண்டுமே அப்ஸ்ட்ராக்ட் மெத்தடுகளை கொண்டிருக்கலாம்.

அப்ஸ்ட்ராக்ட்மெத்தட்

 Abstract என அறிவிக்கப்பட்டு அதன் இம்ப்ளிமெண்டேசன் இல்லாத மெத்தடுகளை அப்ஸ்ட்ராக்ட் மெத்தட் என அழைக்கப்படுகின்றது. அதன் இம்ப்ளிமெண்டேசன் அந்த மெத்தடு உள்ள கிளாஸை இன்ஹெரிட் செய்யும் கிளாஸில் எழுதலாம்.

public abstract void draw();  

அப்ஸ்ட்ராக்ட் மெத்தட் என்பது சி #- ல் இன்டெர்னல் ஆக விர்ச்சுவல் மெத்தட்  என  எடுத்துக் கொள்ளப்படுகின்றது. என்வே டெரைவ்டு கிளாஸில் ஓவர் ரைட் செய்ய இயலுகின்ற்து.

அப்ஸ்ட்ராக்ட்  மெத்தட் அறிவிப்பில் static மற்றும் abstract மாடிஃபையர்களை பயன்படுத்த இயலாது

அப்ஸ்ட்ராக்ட் மெத்தடுகள் அப்ஸ்ட்ராக்ட் கிளாஸினுள் மட்டுமே எழுத முடியும்.

 

C# அப்ஸ்ட்ராக்ட் கிளாஸ்

சி#-ல் abstract என அறிவிக்கப்படும் கிளாஸ்கள் அப்ஸ்ட்ராக்ட் கிளாஸ் என அழைக்கப்படுகின்றது. இந்த கிளாஸிற்கு ஆப்ஜெக்ட் உருவாக்க முடியாது. இதை இன்ஹெரிட் செய்து அந்த டெரிவ்டு கிளாஸிற்கு ஆப்ஜெக்ட் உருவாக்கலாம். டெரிவ்டு கிளாஸில் அப்ஸ்ட்ராக்ட் மெத்தடுகளுக்கு இம்ப்ளிமென்டேசன் எழுதலாம்.

கீழே உள்ள சான்று நிரலில் draw() என்றொரு அப்ஸ்ட்ராக்ட் மெத்தட் shape என்ற அப்ஸ்ட்ராக்ட் கிளாஸில் அறிவிக்கப்பட்டுள்ளது.அதன் டெரிவ்டு கிளாஸ் ஆன Rectangle, Circle ஆகிய இரு கிளாஸ்களிலும் அதன் இம்ப்லிமென்டேசன் உள்ளது

 

      using System;  

public abstract class Shape  

{  

    public abstract void draw();  

}  

public class Rectangle : Shape  

{  

    public override void draw()  

    {  

        Console.WriteLine("drawing rectangle...");  

    }  

}  

public class Circle : Shape  

{  

    public override void draw()  

    {  

        Console.WriteLine("drawing circle...");  

    }  

}  

public class TestAbstract  

{  

    public static void Main()  

    {  

        Shape s;  

        s = new Rectangle();  

        s.draw();  

        s = new Circle();  

        s.draw();  

    }  

}  

வெளியீடு:

drawing ractangle...

drawing circle...

 

நன்றி.

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

 

ads Udanz

Sunday, March 1, 2020

பைத்தானில் அப்ஸ்ட்ராக்ட் கிளாஸ் மற்றும் அப்ஸ்ட் ராக்ட் மெத்தட்கள்.


அப்ஸ்ட்ராக்ட் கிளாசானது மற்ற கிளாஸ்களுக்கு blue print ஆக செயற்படுகின்றது. இதில் இந்த கிளாசைஇன் ஹெரிட் செய்யும் கிளாசில் இம்ப்ளிமென்ட் செய்ய வேண்டிய மெத்தட்களின் அறிவிப்பு இருக்கின்றது.ஒன்று அல்லது ஒன்றுக்கு மேற்பட்ட அப்ஸ்ட்ராக்ட் மெத்தட் உள்ள கிளாஸ் அப்ஸ்ட்ராக்ட் கிளாஸ் எனப்படுகின்றது.அப்ஸ்ட்ராக்ட் மெத்தட் என்பது மெத்தடின் அறிவிப்பு இருக்கும் ஆனால் அதம் இம்ப்ளிமெண்டேசன் இருக்காது. அதை இன் ஹெரிட் செய்யும் கிளாஸ் கட்டாயம் அப்ஸ்ட்ராக்ட் மெத்தடை நடைமுறைப்படுத்த வேண்டும்.பெரிய ஃபங்க்சனல் யுனிட்டில் எல்லா காம்பனன்டுக்கும் அடிப்ப்டை செய்ற்பாட்டை தர அப்ட்ராக்ட் கிளாஸ் பயன்படுகின்றது.
அப்ஸ்ட்ராக்ச் கிளாசில் இம்ப்ளிமெண்டேசனுடன் கூடிய மெத்தட்களுமிருக்கலாம். மெத்தட்களின் அறிவிப்பை ,மட்டும் கொண்டது இன்டெர்ஃபேஸ் எனப்படும்.
ஒரு அப்ஸ்ட்ராக்ட் கிளாசை உருவாக்குவதன் மூலம் எல்லா கிளாஸிற்கும் உண்டான அடிப்படை ஃபங்க்சனலாட்டியை தரக்கூடிய ஒரு கிளாசை உருவாகியிருப்போம்.
அப்ஸ்ட்ராக்ட் கிளாசிற்கு ஆப்ஜெக்ட் உருவாக்க முடியாது. ஆனால் அதை இன் ஹெரிட் கிளாஸிற்கு ஆப்ஜெக்ட் உருவாக்கலாம்.
டிஃபால்ட் ஆக பைத்தானில் அப்ஸ்ட்ராக்ட் கிளாஸ் உருவாக்க முடியாது.ஆனால் பைத்தான் ஆனதுABC எனப்படும் மாடூலை கொண்டுள்ளது.ABC என்பது Abstract base class என்பதன் சுருக்கமாகும்.ABC ஆனது அப்ஸ்ட்ராக்ட் கிளாசில் உள்ள மெத்தடை அப்ஸ்ட்ராக்ட் என மார்க் செய்து அதன் இம்ப்ளிமென்டேசனை டெரிவ்டு கிளாசில் தருகின்றது.
@abstractmethod என்ற கீவேர்டு மூலமாக அப்ஸ்ட்ராக்ட் மெத்தட் டெகரேட் செய்யப்படுகின்றது.
சான்று நிரல்-1
# Python program showing
# abstract base class work
  
from abc import ABC, abstractmethod
  
class Polygon(ABC):
  
    # abstract method
    def noofsides(self):
        pass
  
class Triangle(Polygon):
  
    # overriding abstract method
    def noofsides(self):
        print("I have 3 sides")
  
class Pentagon(Polygon):
  
    # overriding abstract method
    def noofsides(self):
        print("I have 5 sides")
  
class Hexagon(Polygon):
  
    # overriding abstract method
    def noofsides(self):
        print("I have 6 sides")
  
class Quadrilateral(Polygon):
  
    # overriding abstract method
    def noofsides(self):
        print("I have 4 sides")
  
# Driver code
R = Triangle()
R.noofsides()
  
K = Quadrilateral()
K.noofsides()
  
R = Pentagon()
R.noofsides()
  
K = Hexagon()
K.noofsides()
வெளியீடு:.
I have 3 sides
I have 4 sides
I have 5 sides
I have 6 sides

சான்று நிரல்-2

# Python program showing
# abstract base class work
  
from abc import ABC, abstractmethod
class Animal(ABC):
  
    def move(self):
        pass
  
class Human(Animal):
  
    def move(self):
        print("I can walk and run")
  
class Snake(Animal):
  
    def move(self):
        print("I can crawl")
  
class Dog(Animal):
  
    def move(self):
        print("I can bark")
  
class Lion(Animal):
  
    def move(self):
        print("I can roar")
          
# Driver code
R = Human()
R.move()
  
K = Snake()
K.move()
  
R = Dog()
R.move()
  
K = Lion()
K.move()

வெளியீடு
I can walk and run
I can crawl
I can bark
I can roar

நன்றி.
முத்து கார்த்திகேயன்,மதுரை.
9196293 29142
ads Udanz