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 Animalbir 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 Pigve Dognesneleri 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.