C++ Polimorfizmi
polimorfizm
Polimorfizm "birçok form" anlamına gelir ve kalıtım yoluyla birbiriyle ilişkili birçok sınıfımız olduğunda ortaya çıkar.
Bir önceki bölümde belirttiğimiz gibi; Kalıtım , başka bir sınıftan öznitelikleri ve yöntemleri miras almamızı sağlar. Polimorfizm , farklı görevleri gerçekleştirmek için bu yöntemleri kullanır. Bu, tek bir eylemi farklı şekillerde gerçekleştirmemizi sağlar.
Örneğin, adında Animal
bir yöntemi olan bir temel sınıf düşünün animalSound()
. Türetilmiş Hayvan sınıfları Domuzlar, Kediler, Köpekler, Kuşlar olabilir - Ayrıca kendi hayvan sesi uygulamalarına da sahiptirler (domuz oinks ve kedi miyavları, vb.):
Örnek
// Base class
class Animal {
public:
void
animalSound() {
cout << "The animal makes a sound \n"
;
}
};
// Derived class
class Pig : public Animal {
public:
void
animalSound() {
cout << "The pig says: wee wee \n" ;
}
};
// Derived class
class Dog
: public Animal {
public:
void animalSound()
{
cout << "The dog says: bow wow \n" ;
}
};
Bir sınıftan miras almak için sembolü kullandığımızı Miras bölümünden hatırlayın .:
Şimdi Pig
ve
Dog
nesneleri oluşturabilir ve animalSound()
yöntemi geçersiz kılabiliriz:
Örnek
// Base class
class Animal {
public:
void
animalSound() {
cout << "The animal makes a sound \n"
;
}
};
// Derived class
class Pig : public Animal {
public:
void
animalSound() {
cout << "The pig says: wee wee \n" ;
}
};
// Derived class
class Dog
: public Animal {
public:
void animalSound()
{
cout << "The dog says: bow wow \n" ;
}
};
int main() {
Animal
myAnimal;
Pig myPig;
Dog myDog;
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
return 0;
}
"Kalıtım" ve "Polimorfizm" Neden ve Ne Zaman Kullanılır?
- Kodun yeniden kullanılabilirliği için yararlıdır: yeni bir sınıf oluşturduğunuzda mevcut bir sınıfın niteliklerini ve yöntemlerini yeniden kullanın.