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

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

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

"அது போதும் எளிது."

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

ஒரு உதாரணத்தைப் பார்ப்போம்:

ஜாவா குறியீடு விளக்கம்
abstract class BodyGuard
{
 abstract void applyMartialArts(Attacker attacker);

 void shoot(Attacker attacker)
 {
    gun.shoot(attacker);
 }

 void saveClientLife(Attacker attacker)
 {
  if (attacker.hasGun())
     shoot(attacker);
  else
     applyMartialArts(attacker);
 }
}
தாக்குதலை எவ்வாறு சமாளிப்பது என்பதை பாடிகார்ட் வகுப்பு தீர்மானிக்கிறது: தற்காப்புக் கலைகளை சுடுதல் அல்லது பயன்படுத்துதல்.

இருப்பினும், குறிப்பிட்ட தற்காப்புக் கலை குறிப்பிடப்படவில்லை, இருப்பினும் திறமை உள்ளது என்பதை நாங்கள் உறுதியாக நம்புகிறோம்.

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

"நீங்கள் சொல்வது சரிதான். இது ஒரு சில செயல்படுத்தப்பட்ட முறைகளைக் கொண்ட இடைமுகம் போன்றது."

"ஆம், இந்த வகையான சுருக்க வகுப்புகள் நிலையான ஜாவா SE வகுப்புகளில் பொதுவானது."