1. திமிங்கலங்கள் மற்றும் பசுக்கள்

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

இங்கே பாருங்கள். OOP இன் மற்றொரு சக்திவாய்ந்த கருவியான பாலிமார்பிஸத்தைப் பற்றி உங்களுக்குச் சொல்வோம் . இது நான்கு அம்சங்களைக் கொண்டுள்ளது.


2. பரம்பரை ஒரு சஞ்சீவி அல்ல

Cowநீங்கள் ஒரு விளையாட்டுக்கு ஒரு வகுப்பை எழுதியுள்ளீர்கள் என்று கற்பனை செய்து பாருங்கள் . இது பல துறைகளையும் முறைகளையும் கொண்டுள்ளது. இந்த வகுப்பின் பொருள்கள் பல்வேறு விஷயங்களைச் செய்யலாம்: நடப்பது, சாப்பிடுவது மற்றும் தூங்குவது. பசுக்கள் நடக்கும்போது ஒலிக்கும் மணியையும் அணிந்துகொள்கின்றன. வகுப்பில் உள்ள அனைத்தையும் மிகச்சிறிய விவரங்களுக்கு செயல்படுத்தியுள்ளீர்கள் என்று வைத்துக்கொள்வோம்.

பின்னர் உங்கள் வாடிக்கையாளர் வந்து ஒரு புதிய விளையாட்டு நிலையை வெளியிட விரும்புவதாக கூறுகிறார், அதில் அனைத்து நடவடிக்கைகளும் கடலில் நடைபெறுகின்றன, மேலும் முக்கிய கதாபாத்திரம் ஒரு திமிங்கலம்.

நீங்கள் ஒரு Whaleவகுப்பை வடிவமைக்கத் தொடங்கி, அது வகுப்பிலிருந்து சற்று வித்தியாசமானது என்பதை உணருங்கள் Cow. இரண்டு வகுப்புகளின் தர்க்கமும் மிகவும் ஒத்திருக்கிறது மற்றும் நீங்கள் பரம்பரையைப் பயன்படுத்த முடிவு செய்கிறீர்கள்.

ஜாவாவில் பாலிமார்பிசம்

வகுப்பு Cowபெற்றோர் வகுப்பின் பங்கை ஏற்றுக்கொள்வதற்கு ஏற்றது: இது தேவையான அனைத்து மாறிகள் மற்றும் முறைகளைக் கொண்டுள்ளது. நாம் செய்ய வேண்டியது திமிங்கலத்திற்கு நீச்சல் திறனைக் கொடுப்பதுதான். ஆனால் ஒரு சிக்கல் உள்ளது: உங்கள் திமிங்கலத்திற்கு கால்கள், கொம்புகள் மற்றும் மணி உள்ளது. எல்லாவற்றிற்கும் மேலாக, இந்த செயல்பாடு வகுப்பிற்குள் செயல்படுத்தப்படுகிறது Cow. இங்கே என்ன செய்ய முடியும்?

ஜாவாவில் பாலிமார்பிசம்.  பரம்பரை

3. முறை மேலெழுதல்

முறை மேலெழுதல் நம் மீட்புக்கு வருகிறது. எங்கள் புதிய வகுப்பில் நாம் விரும்புவதைச் செய்யாத ஒரு முறையை நாம் மரபுரிமையாகப் பெற்றிருந்தால், அந்த முறையை வேறு ஒன்றைக் கொண்டு மாற்றலாம்.

முறை மீறல்

இது எப்படி செய்யப்படுகிறது? எங்கள் சந்ததி வகுப்பில், நாங்கள் மேலெழுத விரும்பும் பெற்றோர் வகுப்பின் முறையின் அதே முறையை அறிவிக்கிறோம். எங்கள் புதிய குறியீட்டை அதில் எழுதுகிறோம். அவ்வளவுதான் - பெற்றோர் வகுப்பில் உள்ள பழைய முறை வெறுமனே இல்லை என்பது போலாகும்.

இது எவ்வாறு செயல்படுகிறது:

குறியீடு விளக்கம்
class Cow
{
   public void printColor ()
   {
      System.out.println("I'm a white whale");
   }

   public void printName()
   {
      System.out.println("I'm a cow");
   }
}

class Whale extends Cow
{
   public void printName()
   {
      System.out.println("I'm a whale");
   }
}
  • இரண்டு வகுப்புகள் இங்கே வரையறுக்கப்பட்டுள்ளன - Cowமற்றும்Whale
  • Whaleபரம்பரைCow
  • வகுப்பானது முறையை WhaleமீறுகிறதுprintName()
public static void main(String[] args)
{
   Cow cow = new Cow();
   cow.printName();
}
இந்த குறியீடு திரையில் பின்வரும் உரையைக் காட்டுகிறது:
I'm a cow
public static void main(String[] args)
{
   Whale whale = new Whale();
   whale.printName();
}
இந்த குறியீடு திரையில் பின்வருவனவற்றைக் காட்டுகிறது:
I'm a whale

Cowவகுப்பை மரபுரிமையாகப் பெற்று, முறையை மீறிய பிறகு printName, Whaleவர்க்கம் உண்மையில் பின்வரும் தரவு மற்றும் முறைகளைக் கொண்டுள்ளது:

class Whale
{
   public void printColor()
   {
      System.out.println("I'm a white whale");
   }

   public void printName()
   {
      System.out.println("I'm a whale");
   }
}
எங்களுக்கு எந்த பழைய முறையும் தெரியாது.