தொகுதி பாடங்கள் (1/2)
பரம்பரை
பரம்பரை என்பது OOP இன் அடிப்படை பொறிமுறையாகும், இது ஒரு வகுப்பை (குழந்தை வகுப்பு அல்லது துணைப்பிரிவு என்று அழைக்கப்படுகிறது) மற்றொரு வகுப்பிலிருந்து புலங்களையும் முறைகளையும் பெற அனுமதிக்கிறது (பெற்றோர் வகுப்பு அல்லது சூப்பர் கிளாஸ் என்று அழைக்கப்படுகிறது).
இது குறியீடு மறுபயன்பாட்டை ஊக்குவிக்கிறது மற்றும் தேவையற்ற மறுபயன்பாடுகளைத் தவிர்க்கிறது.
extends உடன் ஒரு வகுப்பை விரிவுபடுத்துதல்
ஜாவாவில், extends முக்கிய சொல்லைப் பயன்படுத்துகிறோம்:
class Vehicle {
protected int speed; // 'protected' makes the field visible to subclasses
public void honk() {
System.out.println("Beep beep!");
}
}
class Car extends Vehicle {
// Car automatically inherits the speed field and the honk() method
}கன்ஸ்ட்ரக்டர் மற்றும் super() முக்கிய வார்த்தை
சூப்பர் கிளாஸில் அளவுருக்களை ஏற்கும் ஒரு கன்ஸ்ட்ரக்டர் இருந்தால், துணைப்பிரிவு அதை அதன் கன்ஸ்ட்ரக்டரில் super(...) ஐப் பயன்படுத்தி முதல் கூற்றாக வெளிப்படையாக அழைக்க வேண்டும்:
class Person {
String name;
public Person(String name) {
this.name = name;
}
}
class Student extends Person {
int studentId;
public Student(String name, int studentId) {
super(name); // Invokes the constructor of Person
this.studentId = studentId;
}
}முறை மீறல் (@Override)
சூப்பர் கிளாஸிலிருந்து பெறப்பட்ட ஒரு முறைக்கு ஒரு துணைப்பிரிவு அதன் சொந்த குறிப்பிட்ட செயலாக்கத்தை வழங்க முடியும். இந்தச் செயல்பாடு ஓவர்ரைடிங் (முறையை மீறுதல்) என்று அழைக்கப்படுகிறது, மேலும் இது @Override சிறுகுறிப்பால் குறிக்கப்படுகிறது.
class Animal {
public void makeSound() {
System.out.println("Rumore generico");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Miao!");
}
}protected மாற்றி
protected அணுகல் மாற்றியானது பரம்பரையில் முக்கிய பங்கு வகிக்கிறது. private போலல்லாமல், உறுப்பினர்களை ஒரே வகுப்பிற்குள் மட்டுமே பார்க்க வைக்கிறது, protected அவர்கள் வெவ்வேறு தொகுப்புகளில் வசித்தாலும், புலங்கள் மற்றும் முறைகளை ஒரே தொகுப்பிற்குள்ளும் அனைத்து துணைப்பிரிவுகளிலும் அணுக அனுமதிக்கிறது.
super உடன் பெற்றோர் உறுப்பினர்களை அணுகுதல்
சூப்பர் கிளாஸ் கன்ஸ்ட்ரக்டரை அழைப்பதுடன், super திறவுச்சொல்லை துணைப்பிரிவு முறைகளில் குறிப்பு முறைகள் அல்லது பெற்றோர் வகுப்பின் மாறிகள் பயன்படுத்த முடியும். ஒரு முறை மேலெழுதப்படும்போது இது மிகவும் பயனுள்ளதாக இருக்கும், ஆனால் நீங்கள் இன்னும் அசல் பெற்றோரின் நடத்தையைப் பயன்படுத்த விரும்புகிறீர்கள்:
class Animal {
public void sleep() {
System.out.println("Zzz");
}
}
class Cat extends Animal {
@Override
public void sleep() {
super.sleep(); // Executes the behavior of Animal
System.out.println("The cat purrs while sleeping.");
}
}ஜாவாவில் ஒற்றை மரபுரிமை
ஜாவாவில், ஒரு வகுப்பு ஒரே வகுப்பை (ஒற்றை மரபு) நீட்டிக்க முடியும். பல வகுப்புகளிலிருந்து (பல பரம்பரை) நேரடி பரம்பரை அனுமதிக்கப்படாது; எடுத்துக்காட்டாக, class Cat extends Animal, Mammal தொகுத்தல் பிழையை ஏற்படுத்தும். இந்த வடிவமைப்பு தேர்வு "வைர பிரச்சனை" (இரண்டு சூப்பர்கிளாஸ்கள் வெவ்வேறு செயலாக்கங்களுடன் ஒரே முறையை வரையறுக்கும் போது) எனப்படும் தெளிவின்மைகளை தவிர்க்கிறது. இந்த வரம்பைக் கடக்க, ஜாவா இடைமுகங்கள் என்ற கருத்தை அறிமுகப்படுத்துகிறது, அதை நாம் அடுத்த தொகுதியில் ஆராய்வோம்.
நீங்களே முயற்சி செய்து பாருங்கள்
விலங்குகளை நீட்டிப்பதன் மூலம் நாய் துணைப்பிரிவை முடிக்கவும். ஒரு பெயரை (சரம்) ஏற்றுக்கொண்டு, அதை விலங்கு கட்டமைப்பாளருக்கு அனுப்ப சூப்பர்(பெயர்) பயன்படுத்தும் நாய் கட்டமைப்பாளரை அறிவிக்கவும்.
குறிப்பைக் காட்டு
`பொது நாய்(சரம் பெயர்) {சூப்பர்(பெயர்); }` நாய் வகுப்பின் உள்ளே.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
அனிமலில் இருந்து நாயை நீட்டி, மேக்சவுண்ட்() முறையை மேலெழுதவும், அதனால் அது பொதுவான ஒலிக்குப் பதிலாக வூஃப் என்ற சரத்தை வழங்கும். @Override சிறுகுறிப்பைப் பயன்படுத்தவும்.
குறிப்பைக் காட்டு
`public String makeSound() அறிவிப்புக்கு மேலே `@ஓவர்ரைடு` என்று எழுதவும் {ரிட்டர்ன் 'வூஃப்'; }` நாயின் உள்ளே.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மியாவ் சரத்தை வழங்க, அனிமலை நீட்டிக்கும் மற்றும் மேக்சவுண்ட்() முறையை மீறும் பூனை வகுப்பை அறிவிக்கவும். விலங்கு வகுப்பில் ஏற்கனவே ஒரு கட்டமைப்பாளர் உள்ளது, அது ஒரு பெயரை ஏற்றுக்கொள்கிறது; கேட் கன்ஸ்ட்ரக்டரும் ஒரு பெயரை ஏற்று அதை சூப்பர் கிளாஸ் கன்ஸ்ட்ரக்டருக்கு சரியாக அனுப்புவதை உறுதி செய்யவும்.
குறிப்பைக் காட்டு
`விலங்கு` நீட்டிக்கும் `பூனை` வகுப்பை உருவாக்கவும். கன்ஸ்ட்ரக்டரை அறிவிக்கவும் `பொது பூனை(சரம் பெயர்) {சூப்பர்(பெயர்); }` மற்றும் `மேக்சவுண்ட்()` முறையை மேலெழுதுவதற்கு `@ஓவர்ரைடு` ஐப் பயன்படுத்தி `'மியாவ்'` என்பதை வழங்கவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்