08 OCAK 2018
PAZARTESİ
01.28
Youtube
Youtube kanalım açıldı! Daha detaylı ve güncel konu anlatımları için takip etmeyi unutmayın.
C++ ile OOP - Polymorphism (Çok Biçimlilik)

Miras (Inheritence) ile birlikte OOP için en önemli konulardan biridir diyebiliriz. Polymorphism, temelini override etmekten alıyor diyebiliriz. Elimizde var olan bir ana sınıf özelliği alt sınıflarda override edilerek farklı sonuçlar çıkartıyor ise bu durum polymorphism olarak geçiyor. Peki ya override nedir?

Override

Bir metot birden fazla kez aynı veri tipi, aynı isim ve aynı parametre ile kullanılamaz"dı". Fakat bu durumu değiştirebiliyoruz. Eğer varolan bir metot artık farklı bir işleve hizmet edecek ise onu değiştirebiliyoruz. Bu işlemi gerçekleştirirken override etmiş oluyoruz. Yani varolan bir metodu tekrar yazıyoruz. C++ programlama dilinde override ederken kullandığımız 2 ekstra ifademiz var: virtual ve override

Polymorphism

Yukarıda açıkladığım üzere override edilerek değiştirilmiş bir inheritence ilişkisine dayanıyor diyebilirim. Bir örnek ile konuyu kavrayalım:

class Hayvan{
	public:
		virtual string konusma(){
			return "Konusamiyor!";
		}
};

class Kedi:Hayvan{
	public:
		string konusma() override {
			return "miyav";
		}
};

class Kopek:Hayvan{
	public:
		string konusma() override {
			return "havhav";
		}
};

int main(){
	Hayvan X;
	Kedi Y;
	Kopek Z;
	cout << "Hayvan: " << X.konusma() << endl;
	cout << "Kedi: " << Y.konusma() << endl;
	cout << "Kopek: " << Z.konusma() << endl;
}

Hayvan ana sınıfında belirttiğimiz konusma metodunu alt sınıflarda değiştirebilmek için ana sınıfdaki metodun başına virtual ibaresini ekliyoruz. Alt sınıflarda değiştirdiğimiz ifadelerde de sonuna override ifadesini ekliyoruz.

Sonuçta:

Hayvan: Konusamiyor!
Kedi: miyav
Kopek: havhav
YORUMLAR 1
1
Seher GÜMÜŞAY
15 NİSAN 2022 - 11.35
override yazmaya gerek yok bence
CEVAPLA
YORUM BIRAK
Şuanda bu yoruma cevap yazıyorsunuz:
İptal Et